在COBOL中给出这个MOVE语句:
MOVE "ABCDEFGH" TO WORK-AREA.
如何对工作区进行编码,以便在每个源角色之间出现一个空格(即工作区将包含“A B C D E F G H”)?
01 WORK-AREA PIC ?
答案 0 :(得分:1)
COBOL提供了一组图片编辑字符,可用于在将数据移动到字段中时修改数据(格式化数字或在文本字段中插入某些字符时,诸如左零抑制或逗号之类的东西)。其中之一是用于空格的简单插入字符B
,这意味着您应该可以使用:
PIC XBXBXBXBXBXBXBX
对于更复杂的修改(尽管在此特定情况下不需要,但您可能想要进行重新排序),我将提出另一种可能性,使用move corresponding
(用于批量传输命名字段)以防万一:
01 COMP-AREA-UNION.
03 COMP-AREA PIC X(8).
03 COMP-AREA-NAMED REDEFINES COMP-AREA.
05 AREA-A PIC X.
05 AREA-B PIC X.
05 AREA-C PIC X.
05 AREA-D PIC X.
05 AREA-E PIC X.
05 AREA-F PIC X.
05 AREA-G PIC X.
05 AREA-H PIC X.
01 WORK-AREA-UNION.
03 WORK-AREA PIC X(15).
03 WORK-AREA-NAMED REDEFINES WORK-AREA.
05 AREA-A PIC X.
05 FILLER PIC X VALUE SPACE.
05 AREA-B PIC X.
05 FILLER PIC X VALUE SPACE.
05 AREA-C PIC X.
05 FILLER PIC X VALUE SPACE.
05 AREA-D PIC X.
05 FILLER PIC X VALUE SPACE.
05 AREA-E PIC X.
05 FILLER PIC X VALUE SPACE.
05 AREA-F PIC X.
05 FILLER PIC X VALUE SPACE.
05 AREA-G PIC X.
05 FILLER PIC X VALUE SPACE.
05 AREA-H PIC X.
与大多数COBOL程序一样,它的数据划分约为80%,并且代码相对简单:
MOVE "ABCDEFGH" TO COMP-AREA.
MOVE CORRESPONDING COMP-AREA-NAMED TO WORK-AREA-NAMED.
此时,WORK-AREA
应该包含A B C D E F G H
。除非我在某个地方错过了句号,否则编译器将给您12万行错误:-)