如何使用COBOL在字符串的字符之间插入空格?

时间:2017-03-03 15:29:41

标签: cobol

在COBOL中给出这个MOVE语句:

    MOVE "ABCDEFGH" TO WORK-AREA. 

如何对工作区进行编码,以便在每个源角色之间出现一个空格(即工作区将包含“A B C D E F G H”)?

01  WORK-AREA PIC ?

1 个答案:

答案 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万行错误:-)