将 cobol COMP 数据转换为 ASCII

convert cobol COMP data to ASCII

我正在使用实用程序 vutil 将一些 COBOL dat 文件转换为 ASCII:

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 程序,对于一个文件,它可能是最快且最便宜的解决方案。

  2. 有各种声称可以读取 Acu Cobol 文件的商业软件包,不过可能很贵。

  3. 对于此文件,您可以查看 RecordEditor,稍微摆弄一下 可能 (我的意思是 可能) 让它工作。对于此 Cobol-Copybook,请尝试将其导入为 Mainframe 或 Open-Cobol Copybook。我怀疑 Open-?Cobol Microfocus 可能更好。 (注:我是RecordEditor的作者)


我觉得数据可能是,没有二进制文件和原始数据,我不能确定。

提供的数据中的前 16 个字节看起来像 2 个日期,所以我与 FAT-DINI/FAT-DFIN 对齐,但这只是一个猜测:

    0107200230062003  ‚p00    20
22223333333333333333008733000033
00000107200230062003002000000020

在我得到的记录编辑器中:


在 RecordEditor lib 目录中,有一个 JRecord.properties 用于 "defining Cobol dialects"。