如何在同一个文件中使用 LINKAGE SECTION 和 WORKING-STORAGE SECTION?

How to use LINKAGE SECTION and WORKING-STORAGE SECTION in the same file?

我正在尝试编写一个 COBOL 模块并在此文件中也包含一些变量:

   IDENTIFICATION DIVISION.
   PROGRAM-ID. UTIL.

   DATA DIVISION.
   LINKAGE SECTION.
   01 MY_VAR PIC X(100).

   DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 RESULT PIC X(200) value SPACES.

   PROCEDURE DIVISION USING MY_VAR.
       STRING INPUT DELIMITED BY SPACE
              ' '   DELIMITED BY SIZE
              MY_VAR BY SPACE
       INTO RESULT
       DISPLAY RESULT
   EXIT PROGRAM.

对于输入参数 (MY_VAR),我使用 LINKAGE SECTION。我不确定如何使用 WORKING-STORAGE SECTION 语句来声明 RESULT 变量。

我该怎么做?

您应该有 1 个数据部门。另外,我认为顺序对各节不利。 我建议在编码之前查看一些 Cobol 文档。

     IDENTIFICATION DIVISION.
   PROGRAM-ID. UTIL.

   DATA DIVISION.

   WORKING-STORAGE SECTION.
   01 RESULT PIC X(200) value SPACES.

   LINKAGE SECTION.
   01 MY_VAR PIC X(100).



   PROCEDURE DIVISION USING MY_VAR.
       STRING INPUT DELIMITED BY SPACE
              ' '   DELIMITED BY SIZE
              MY_VAR BY SPACE
       INTO RESULT
       DISPLAY RESULT
   EXIT PROGRAM.

你是在PC主机上使用Cobol程序吗?如果在 PC 上——您使用的是哪个 Cobol 程序? 如果您使用链接部分,前 2 个字节指定变量的长度。 另外 - 我没有看到 INPUT 变量的定义,除非 INPUT 是某种 Cobol 命令(在大型计算机上无法识别)。

正确的语法(在大型机上)是:

LINKAGE SECTION.
   01 link-parms.
      05 LNK-PARM-LENGTH         PIC S9999 COMP. 
      05 MY_VAR PIC X(100). 

   PROCEDURE DIVISION USING MY_VAR.
       STRING INPUT DELIMITED BY SPACE
              ' '   DELIMITED BY SIZE
              MY_VAR BY SPACE
       INTO RESULT
       DISPLAY RESULT
       STOP RUN.