【发布时间】:2021-10-20 15:30:56
【问题描述】:
我正在尝试将 COMP-5 变量(我从其他系统接收)移动到数字字段。我注意到,当我显示 COMP-5 变量时,我可以看到该值,但是当我尝试移动它时,COMP-5 变量中的值变为零。我没有任何使用 COMP-5 的经验。有人可以帮我解决这个问题吗?
代码:
09 O-Xid.
12 O-Xid2-length PIC S9999 COMP-5 SYNC.
12 O-Xid2 PIC X(255).
09 WS-O-Xid.
12 WS-O-Xid2-length PIC 9999.
12 WS-O-Xid2 PIC X(255).
MOVE O-Xid2-length TO WS-O-Xid2-length
MOVE O-Xid2 TO WS-O-Xid2
【问题讨论】:
-
只是为了确保:您收到的
O-Xid2-length-field 是 2 个字节? -
@piet.t 感谢您的回答!是的,我收到了 O-Xid2 长度的 2 个字节。我仍然无法解决这个问题。任何我可能会出错的指针?
-
@Simon 是的,谢谢您的帮助!我浏览了文档,问题出在图片子句上,我的工作存储变量是 9(4),但由于 copybook 变量是 comp-5,它实际上是 32 个字节。当我将其更改为 X(32) 时,我可以看到填充了正确的值。
-
所以您的
COMP-5问题完全没有使用COMP-5解决了吗?注意:COMP-5使字节大小更小,而不是更多;使用PIC X(32)听起来很可疑...... -
@Simon COMP-5 是来自其他系统的传入数据。我的 cobol 程序中使用的变量不是 COMP-5。但是是的,当我增加字段大小时,只有我能够看到这些值。
标签: cobol