Преобразовать данные 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 ответ
Возможные решения:
Возможно, вы не захотите писать программу для Cobol, для одного файла это, вероятно, будет самым быстрым и дешевым решением.
Существуют различные коммерческие пакеты, которые утверждают, что читают файлы Acu Cobol, хотя, вероятно, и дорогие.
Для этого файла вы можете взглянуть на 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 для "определения диалектов Кобола".