【问题标题】:Reading a variable length record mainframe file读取可变长度记录主机文件
【发布时间】:2015-07-19 19:15:56
【问题描述】:

我有一个二进制格式的大型机数据文件,其中包含可变记录。在这种情况下没有字帖有效,我也不知道行尾。如何读取这样的文件?

【问题讨论】:

  • 向我们展示您迄今为止尝试过的内容。
  • 你想用什么语言和什么平台???
  • 您使用的是什么操作系统?如果不在大型机上,您应该找到以四个字节为前缀的每条记录,X'nnnnn0000' 其中 nnnn 是一个指示记录长度的两字节 Big Endian 二进制文件。第一条记录将以类似形式的另外四个字节作为前缀,指示块长度。一旦块完成,下一条记录也将以块控制信息为前缀。您需要以十六进制查看数据。如果您不理解它,请在您的问题中添加一个示例以及所要求的答案。请参阅您的问题下的编辑链接。

标签: mainframe


【解决方案1】:

假设您在大型机上运行的 COBOL 程序中读取此文件,这确实没有问题。 COBOL 不写入以空值分隔的输出。它写入可变长度记录,长度嵌入在称为 (R)ecord (D)escriptor (W)ord 的 4 字节前缀区域的前两个字节中,该区域不包含在记录布局字帖中。要将这样的记录读回另一个 COBOL,您只需要一个正确编码的字帖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2014-12-19
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多