0

我创建了基于 cobol 抄写本的布局。

布局快照:

在此处输入图像描述

我尝试加载数据也选择相同的布局,它给我一些列的错误结果。我尝试使用所有二进制数字类型。

  1. 阶级秩序边缘
  2. DIV-NO-EDG
  3. Office-NO-EDG
  4. REG-AREA-NO-EDG
  5. 城市无边缘
  6. 县无边缘
  7. BILS-Count-EDG
  8. 修订量-边缘
  9. 使用数量-EDG
  10. 气体-CCF-EDG

结果快照 在此处输入图像描述

输入文件可以在下面的附件中找到

在此处输入链接描述

或者

https://drive.google.com/open?id=0B-whK3DXBRIGa0I0aE5SUHdMTDg

预期输出:

在此处输入图像描述

相关线程 Unpacking COMP-3 digit using Java

4

1 回答 1

0

第一个问题您已经对文件进行了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:

  1. 检查大型机上的文件,如果它有 RECFM=FB,您可以进行传输
  2. 如果文件是 RECFM=VB,请确保传输RDW(记录描述符字)(或将 VB 文件复制到大型机上的 FB 文件)。

其他要点:

您将不得不更新 RecordEditor/JRecord

  • 字体需要为 ebcdic(美国 ebcdic 为 cp037;其他查找)
  • FileStructure/FileOrganisation 需要改变(固定长度/VB)

最后

  • BILS-Count-EDG 的长度为 9 个字符或从第 85 列开始(并且长度为 8 个字节)。
  • 您应该将 Xml 作为文本包含在其中,而不是在其中复制图片。
  • 在 RecordEditor 中,如果您右键单击 >>> Edit Record;它会将字段显示为值、原始文本和十六进制。这对于查看正在发生的事情很有用
  • 你似乎不接受很多答案;答案是否解决您的问题无关紧要;这是答案是否是问题的正确答案。
于 2017-08-11T23:56:44.487 回答