1

对于 COBOL 专家来说,这可能是一个非常基本的问题。但到目前为止,我与 COBOL 毫无关系。我们正在根据字符位置处理一些文件。这些文件是从大型机发送给我们的,我们有一个布局文件,上面写着这样的内容。


位置 : 长度 : 类型 : 描述
----------:--------:------:---------------- ---------------

61-70 : 10 : P5 : FIELD-1 9(13)V(05)

71-80 : 10 : P5 : Field-2 9(13)V(05)

81-81 : 1 : A/N : 标志

82-84 : 3 : N : 天数 9(3)

我知道 A/N 类型意味着它是字母数字。N 表示数字,P 表示打包数据类型。我不明白的是P5是什么意思。P旁边的5有什么意义?

4

3 回答 3

1
  • P - 压缩十进制(即 Cobol Comp-3) 18 位压缩十进制将占用 10 个字节,与给出的长度一致

  • 5 - 小数点后的位数(猜测)。

cobol 中的字段定义可能是

   03 FIELD-1  pic s9(13)V(05) comp-3.

在压缩十进制中,符号保存在最后一个 nyble(4 位)中,每个 nyble(4 位)保存一个十进制数字。

IE

   121 is represented as x'121c'

尽管

  -121 is represented as x'121d'

如果您使用的是 java 并且可以获得 cobol copybook,那么有些软件包可以使用 cobol copybook 读取文件。

于 2013-06-25T22:41:04.910 回答
1

我敢打赌这意味着小数点后 5 位。

于 2013-06-26T23:58:00.157 回答
1

P旁边的5有什么意义?

我不确定。五个 16 位字,也许。

您的打包字段为 10 个字节,包含 19 个字符(18 个数字加上符号)。小数点是隐含的。

如果符号字节(最右边的字节)不是十六进制 F,请更新您的问题。

如果您可以用代表五个数字的五个十六进制字符串更新您的问题,那就太好了。

现在,我猜这是一个普通的压缩十进制字段。

于 2013-06-25T12:09:24.263 回答