如何在Cobol中将每行上的文字分开以写回屏幕或文件?
代码:
05 CONSTPARM PIC X(78) VALUE
'SW89JSXX PROV RANGE 01: XXXXXXX THRU XXXXXXX '
- 'TAXONOMY: XXXXXXXXXX'.
答案 0 :(得分:1)
我们在COBOL中没有实际的字符串。字段只要定义为。
但是,如果你想要打破某些东西",我们有一个名为UNSTRING的动词:
UNSTRING CONSTPARM INTO xxxx DELIMITED BY ALL SPACE
yyyy DELIMITED BY ALL SPACE
zzzz DELIMITED BY ALL SPACE
lackofforethought DELIMITED BY ALL SPACE
etc
您必须为要接收数据的字段命名。
如果多次使用相同的UNSTRING
,则在执行UNSTRING
之前将所有目标字段设置为初始值。否则可以获得数据"遗留下来"从之前使用UNSTRING
。
有关完整说明,请参阅您的手册。企业COBOL语言参考。 UNSTRING
非常强大,并且有很多选择。
要将字段放在一起(或包装圣诞礼物),请使用STRING
。
答案 1 :(得分:0)
您是否尝试过参考修改?参考修改类似于使用来自许多其他语言的子串。它可用于通过提供开始的位置和要返回的字符数来选择另一个数据项的段。引用的字段保持不变。
05 CONSTPARM PIC X(78) VALUE
'SW89JSXX PROV RANGE 01: XXXXXXX THRU XXXXXXX '
- 'TAXONOMY: XXXXXXXXXX'.
05 WS-FIRST-FOUR PIC X(5).
05 WS-RANGE PIC X(5).
MOVE CONSTPARM(1:4) TO WS-FIRST-FOUR.
MOVE CONSTPARM(15:5) TO WS-RANGE.
DISPLAY 'WS-FIRST-FOUR = ' WS-FIRST-FOUR.
DISPLAY 'WS-RANGE = ' WS-RANGE.
您在 WS-FIRST-FOUR 中的价值将是' SW89 '你在 WS-RANGE 中的价值将是' RANGE '。
有关其他示例和更多详细信息,请访问此有用的指南:http://www.fluffycat.com/COBOL/Reference-Modification/