使用 'replacing' 关键字不会更改此 COBOL 代码中的值

using 'replacing' keyword doesn't change the value in this COBOL code

我是 COBOL 编程的新手,我不明白为什么我的代码不能生成我想要的;这正在改变 'm-poem'.

的值
   data division.
   working-storage section.

   01 m-poem pic A(50) value 'nothing here'.

并使用这个:

  procedure division.

  initialize m-poem replacing alphanumeric data by
  -    "This is the way
  -         "I chose to take".
  display m-poem.

我得到的是:"nothing here"。这是 'poem' 的原始值,而不是替换后的值。

(感谢您对 COBOL 的介绍。)

这不起作用的原因是因为您正试图替换仅包含 alphabetic 数据的记录的 alphanumeric data

您可以通过执行以下任一操作来解决此问题:

  1. A(50)必须与replacing alphabetic data配对;
  2. replacing alphanumeric data 必须与 X(50) 配对。