对于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:FLAG
82-84:3:N:第9天(3)
据我所知,A / N类型意味着它是字母数字。 N表示数字,P表示打包数据类型。我不明白的是P5的含义。 P旁边有什么意义?
答案 0 :(得分:1)
P旁边有什么意义?
我不确定。可能有五个16位字。
您的打包字段为10个字节,包含19个字符(18个数字加上符号)。小数点是隐含的。
如果符号字节(最右边的字节)不是十六进制F,请更新你的问题。
如果您可以使用代表五个数字的五个十六进制字符串更新您的问题,那就太棒了。
现在,我猜它是一个普通的压缩十进制字段。
答案 1 :(得分:1)
P - 压缩十进制(即Cobol Comp-3)一个18位的压缩小数将占用10个字节,这与长度一致
5 - 小数点后的位数(猜测)。
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 copybook读取文件。
答案 2 :(得分:1)
我敢打赌它意味着5位小数。