【发布时间】:2012-05-14 16:21:29
【问题描述】:
我们正在尝试用 Perl 编写一个工具,该工具可以解析固定长度的 EBCDIC 数据文件,并通过查看记录中每个字节的十六进制值来生成记录布局。
假设每个数据文件,由我们没有源代码的 Cobol 程序编写,可以有多个记录布局。该工具的目的是通过生成布局来执行数据迁移(EBCDIC 到 ASCII),然后将其馈送到转换器。
问题在于每个字节可能会出现数百种排列和组合。我认为比较当前记录下方记录中相应字节的十六进制值可能会给我们一些关于这可能是什么的线索。但即使在这种情况下,也没有可能得出的具体解决方案。需要在可能影响最终结果的每个关键时刻做出决定。
有人可以让我知道我可以寻找的任何上述模式吗?例如,对于所有 COMP-3,每个半字节都可能表示 0-9 之间的值,因此字节的十六进制值可能类似于 [0-9][0-9]。本质上,对于数据迁移,人们不必担心 COMP 和 COMP-3,因为它们的值不会在迁移中受到影响。但是确定什么是 DISPLAY 字段也是一项艰巨的任务。有人可以提出一些想法或指出我可以进一步探索的方向吗?
任何帮助将不胜感激。我真的陷入了这里的泥潭。
谢谢, 阿迪亚。
【问题讨论】:
-
你说
COMP-3数据不用转换???您是否只对检测和转换DISPLAY类型数据(例如可打印字符)感兴趣,而忽略打包和二进制数据?您能否概述一下这种转换的目的是什么?它可能会帮助我们制定转换策略。但我担心如果没有 COBOL 记录布局可以使用,您可能注定要失败。