2013-06-25 40 views
1

这可能是COBOL专家的一个非常基本的问题。但我直到约会与COBOL无关。我们正在处理一些基于字符位置的文件。这些文件正在从大型机发送给我们,我们有一个布局文件来说明这样的事情。COBOL包装的数据类型:Type = P5


POSITION:长度:TYPE:说明
----------:--------:------:------- ------------------------

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

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

81-81:1:A/N:FLAG

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

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

+0

你使用什么编译器?你显示的输出源是什么? –

回答

1

5旁边的P有什么意义?

我不确定。也许是五个16位的单词。

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

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

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

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

1
  • P - 压缩十进制(即Cobol的样Comp-3)的18位压缩十进制将占用10个字节,其同意的长度给

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

字段定义可能是

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

在压缩十进制,符号在最后nyble保持(4位)和各nyble(4个比特)保持一个十进制数。

121 is represented as x'121c' 

-121 is represented as x'121d' 

如果您使用的是Java,可以得到COBOL字帖,有可以读取使用COBOL字帖的文件包。

1

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