Преобразовать данные COBOL COMP в ASCII

Я конвертирую некоторый файл данных COBOL в ASCII, используя утилиту vutil:

vutil -extract input.dat > output.txt

Я не могу получить удобочитаемый ответ из полей данных COMP. Вот часть моего файла FD

05 FAT-TIPOFT   PIC 9(4).
05 FAT-DINI     PIC 9(8).
05 FAT-DFIN     PIC 9(8).
05 FAT-IMPON    PIC S9(7)V99 COMP.
05 FAT-INPS     PIC 99.
05 FAT-IMPINPS  PIC S9(7)V99 COMP.
05 FAT-IVA      PIC 99.

А вот пример преобразования ASCII:

0107200230062003 ‚p00    20  ³° 6 00     6       

Преобразование в порядке только для полей NON-COMP

Существуют ли какие-либо дополнительные команды или альтернативные утилиты или методы для преобразования полей COMP?

Заметьте, я не хочу входить в мир Cobol, я просто хочу конвертировать данные и избавляться от них!

1 ответ

Решение

Возможные решения:

  1. Возможно, вы не захотите писать программу для Cobol, для одного файла это, вероятно, будет самым быстрым и дешевым решением.

  2. Существуют различные коммерческие пакеты, которые утверждают, что читают файлы Acu Cobol, хотя, вероятно, и дорогие.

  3. Для этого файла вы можете взглянуть на RecordEditor, немного поиграв, вы можете (и я имею в виду, возможно) заставить его работать. Для этого Cobol-Copybook попробуйте импортировать его как мейнфрейм или Open-Cobol. Я подозреваю, что Open-?Cobol Microfocus может быть лучше. (Примечание: я автор RecordEditor)


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

Первые 16 байтов в предоставленных данных выглядят как 2 даты, поэтому я выровнял их по FAT-DINI/FAT-DFIN, это всего лишь предположение:

    0107200230062003  ‚p00    20
22223333333333333333008733000033
00000107200230062003002000000020

В RecordEditor я получаю:


В каталоге lib RecordEditor есть JRecord.properties для "определения диалектов Кобола".

Другие вопросы по тегам