Распаковка цифры COMP-3 с использованием Record Editor/Jrecord

Я создал макет на основе тетради cobol.

Макет снимка:

введите описание изображения здесь

Я попытался загрузить данные, также выбрав тот же макет, он дает неправильный результат для некоторых столбцов. Я пытаюсь использовать все двоичные числовой тип.

  1. КЛАСС-ORDER-EDGE
  2. ДИВ-NO-ЭДГ
  3. ОФИС-NO-EDG
  4. REG-ПЛОЩАДЬ-NO-ЭДГ
  5. ГОРОД-NO-ЭДГ
  6. ЖУПАНИЯ-NO-ЭДГ
  7. BILS-COUNT-EDG
  8. REV-СУММА-EDG
  9. ПРИМЕНЕНИЕ-КОЛ-EDG
  10. ГАЗ-CCF-EDG

снимок результата введите описание изображения здесь

Входной файл можно найти ниже вложения

введите описание ссылки здесь

или же

https://drive.google.com/open?id=0B-whK3DXBRIGa0I0aE5SUHdMTDg

Ожидаемый результат:

введите описание изображения здесь

Связанная тема Распаковка цифры COMP-3 с использованием Java

1 ответ

Первая проблема, вы сделали EBCDIC -> ASCII преобразование файла!!!!

Преобразование EBCDIC -> ascii также попытается преобразовать двоичные поля и текст.

Например:

Comp-3 value   hex     hex after Ascii conversion

 400          x'400c'       x'200c'       x'40' is the ebcdic space character
                                          it gets converted to the ascii
                                          space character x'20'

Вам нужно сделать двоичную передачу, сохраняя файл как ebcdic:

  1. Проверьте файл на мэйнфрейме, если он имеет RECFM=FB, вы можете сделать перевод
  2. Если файл имеет значение RECFM=VB, убедитесь, что вы передали RDW (слово дескриптора записи) (или скопировали файл VB в файл FB на мэйнфрейме).

Другие моменты:

Вам нужно будет обновить RecordEditor/JRecord

  • Шрифт должен быть ebcdic (cp037 для США ebcdic; для другого поиска)
  • FileStructure/FileOrganisation необходимо изменить (фиксированная длина / VB)

в заключение

  • BILS-Count-EDG имеет длину 9 символов или начинается в столбце 85 (и имеет длину 8 байт).
  • Вы должны включить Xml как текст, а не копировать картинку в.
  • В RecordEditor, если вы щелкнете правой кнопкой мыши >>> Изменить запись; это покажет поля как значение, необработанный текст и шестнадцатеричный. Это полезно, чтобы увидеть, что происходит
  • Вы, кажется, не принимаете много ответов; не имеет значения, решает ли ответ вашу проблему; это правильный ответ на вопрос.
Другие вопросы по тегам