COBOL中“REPLACING”的“COPY”语句

时间:2017-09-08 15:18:51

标签: cobol

我可以使用替换条款并让代码下面 基于IBM cobol fieldcpy:

01 field-define 03 :aaa:-field-1 03 :aaa:-field-2

我想删除:aaa: - 的前缀并拥有:

01 field-define 03 field-1 03 field-2

我尝试了以下声明,但确实有效:

copy fieldcopy replacing ==:aaa:-== with " ".

似乎我有两个问题:

  1. replacement子句不识别的“ - ”:aaa: -
  2. by子句不接受空值或空格值
  3. 我发现类似的问题: http://computer-programming-forum.com/48-cobol/2cd93fd177e39127.htm

    但下面的建议确实有效。

    COPY SBKACDET REPLACING ==(PR)-== BY ==''==.

2 个答案:

答案 0 :(得分:0)

我认为你真正想要的是这样的:(语法来自记忆,我希望我做对了):

01 :aaa:-define.
    03 :aaa:-1 pic x(1).
    03 :aaa:-2 pic x(1).

然后像这样复制:

copy "FILENAME"
    replacing ==:aaa:== with ==field==.
copy "FILENAME"
    replacing ==:aaa:== with ==second==.

要得到这个:

01 field-define.
    03  field-1 pic x(1).
    03  field-2 pic x(1).
01 second-define.
    03  second-1 pic x(1).
    03  second-2 pic x(1).

答案 1 :(得分:0)

答:根据IBM文档,它应该有效。但是您需要使用正确的语法来替换部分词

copy fieldcopy
   replacing leading ==:aaa:-== by == ==.