【发布时间】:2013-08-19 18:21:37
【问题描述】:
我在 COBOL 程序中有以下变量,它在读取文件时从文件中获取其值:
01 Employee-number PIC 09(8) comp
01 Employee-number-x redefines
Employee-number PIC x(04)
我在同一个程序中有另一个变量:
01 D-element-number PIC 9(04)
现在,
将Employee-number 移动到D-element-number
然后我把这个D-element-number 写到一个文件中
从输入文件读取的值是:
0013
0024
所以这个值来到Employee-number 和Employee-number-x,我把这个值移动到D-Element-number 并将这个变量写入一个输出文件。
但我在输出文件中得到了这个:
4660
FFFF
4660
4660 是 X'1234' 的十进制等效项
但我想看到类似的东西:
1234
FFFF
1234
我怎样才能做到这一点?
我可以更改D-element-number 的定义,但不能更改。
【问题讨论】:
-
01 D 元素编号 PIC 9(08) 或 PIC 9(09)。
-
@GilbertLeBlanc,是的,这是一个令人困惑的解释,所以它可能就是这么简单:-)
-
@user2695332,您为什么要这样做,您能否消除问题中的困惑。如果您显示的数字是“垂直十六进制”,那么很高兴知道这一点,特别是对于 00001234,您还可以在其中显示您通常看到的“非显示”字符的“.”。您所说的“我可以更改 D 元素编号的定义,但没有别的”是什么意思,因为如果不编写其他代码可能无法实现 - 然后呢?
-
@user2695332,编译列表中的 TRUNC 选项的值是多少?如果 BIN 你最好有 PIC 9(9),与 TRUNC(BIN) 一样,你可以获得一些 9 位数字。您的帐号有多大是告诉您该字段应该有多长的简短方法。