Распаковка цифры COMP-3 с использованием Record Editor/Jrecord
Я создал макет на основе тетради cobol.
Макет снимка:
Я попытался загрузить данные, также выбрав тот же макет, он дает неправильный результат для некоторых столбцов. Я пытаюсь использовать все двоичные числовой тип.
- КЛАСС-ORDER-EDGE
- ДИВ-NO-ЭДГ
- ОФИС-NO-EDG
- REG-ПЛОЩАДЬ-NO-ЭДГ
- ГОРОД-NO-ЭДГ
- ЖУПАНИЯ-NO-ЭДГ
- BILS-COUNT-EDG
- REV-СУММА-EDG
- ПРИМЕНЕНИЕ-КОЛ-EDG
- ГАЗ-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:
- Проверьте файл на мэйнфрейме, если он имеет RECFM=FB, вы можете сделать перевод
- Если файл имеет значение RECFM=VB, убедитесь, что вы передали RDW (слово дескриптора записи) (или скопировали файл VB в файл FB на мэйнфрейме).
Другие моменты:
Вам нужно будет обновить RecordEditor/JRecord
- Шрифт должен быть ebcdic (cp037 для США ebcdic; для другого поиска)
- FileStructure/FileOrganisation необходимо изменить (фиксированная длина / VB)
в заключение
- BILS-Count-EDG имеет длину 9 символов или начинается в столбце 85 (и имеет длину 8 байт).
- Вы должны включить Xml как текст, а не копировать картинку в.
- В RecordEditor, если вы щелкнете правой кнопкой мыши >>> Изменить запись; это покажет поля как значение, необработанный текст и шестнадцатеричный. Это полезно, чтобы увидеть, что происходит
- Вы, кажется, не принимаете много ответов; не имеет значения, решает ли ответ вашу проблему; это правильный ответ на вопрос.