使用 cobc 编译 .cbl 文件时显示器不显示任何内容

问题描述 投票:0回答:0

我正在尝试执行这段代码:

  ******************************************************************
  * Author:
  * Date:
  * Purpose:
  * Tectonics: cobc
  ******************************************************************
   IDENTIFICATION DIVISION.
   PROGRAM-ID. fuente02.
   ENVIRONMENT DIVISION.
   CONFIGURATION SECTION.
   SPECIAL-NAMES.
       DECIMAL-POINT IS COMMA.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.

       SELECT OPTIONAL CLIENTES ASSIGN TO "./clientes.dat"
              ORGANIZATION INDEXED
              ACCESS MODE DYNAMIC
              RECORD KEY IS ID_CLIENTE
              ALTERNATE KEY CLI_NOMBRE WITH DUPLICATES
              ALTERNATE KEY CLI_ALT_2  WITH DUPLICATES
              STATUS ST-FILE.


   DATA DIVISION.
   FILE SECTION.

   FD  CLIENTES.

   01  REG-CLIENTES.
       03  ID_CLIENTE.
           05  CLI_ID           PIC 9(7).
       03  CLI_SALDO            PIC S9(7)V9(3).
       03  CLI_NOMBRE           PIC X(70).
       03  CLI_DIRECCION        PIC X(80).
       03  CLI_CODPOST          PIC X(10).
       03  CLI_CATEGORIA        PIC X.
       03  CLI_ALT_2.
           05  CLI_CATEGORIA_2  PIC X.
           05  CLI_NOMBRE_2     PIC X(60).
       03  CLI_RAZONSOCIAL      PIC X(60).
       03  FILLER               PIC X(240).


   WORKING-STORAGE SECTION.

   01  ST-FILE   PIC XX.
   01  X         PIC X.

   77  BANDERA   PIC 9.
   01  SALDO-Z   PIC Z(6)9,99.
   01  SALDO-ZZ  PIC ------9,99.



   PROCEDURE DIVISION.
   PABLO.
       PERFORM ABRO-ARCHIVOS.
  *     PERFORM GRABO-DATOS THRU F-GRABO-DATOS.
       PERFORM LEO-DATOS THRU F-LEO-DATOS.
       PERFORM CIERRO-ARCHIVOS.
       STOP RUN.

   ABRO-ARCHIVOS.
       OPEN I-O CLIENTES.
       IF ST-FILE > "07"
          DISPLAY "ERROR ABRIENDO EL ARCHIVO".

   CIERRO-ARCHIVOS.
       CLOSE CLIENTES.

   GRABO-DATOS.
       INITIALIZE REG-CLIENTES.
       MOVE 1 TO CLI_ID.
       MOVE 0 TO CLI_SALDO.
       MOVE "VAR-NOMBRE" TO CLI_NOMBRE.
       MOVE "W-DIRECCION" TO CLI_DIRECCION.

   GRABO-REGISTRO.
       WRITE REG-CLIENTES.
       IF ST-FILE = "99" GO TO GRABO-REGISTRO.
       IF ST-FILE > "07"
          DISPLAY "ERROR GRABANDO EL ARCHIVO"
          ACCEPT X.

   F-GRABO-DATOS.
       EXIT.

   LEO-DATOS.
       INITIALIZE REG-CLIENTES.
       START CLIENTES KEY IS NOT LESS THAN ID_CLIENTE.
       READ CLIENTES NEXT RECORD.
       IF ST-FILE = "99" GO TO LEO-DATOS.
       IF ST-FILE > "07"
          DISPLAY "ERROR LEYENDO EL ARCHIVO".

   MUESTRO-DATOS.
       MOVE -15,58 TO SALDO-ZZ.
       DISPLAY "Id Cliente"  LINE 10 COL 5.
       DISPLAY "Saldo"       LINE 11 COL 5.
       DISPLAY "Nombre"      LINE 12 COL 5.
       DISPLAY "Direccion"   LINE 13 COL 5.
       DISPLAY CLI_ID        LINE 10 COL 30.
       DISPLAY SALDO-ZZ       LINE 11 COL 30.
       DISPLAY CLI_NOMBRE    LINE 12 COL 30.
       DISPLAY CLI_DIRECCION LINE 13 COL 30.
       ACCEPT X LINE 14 COL 70.

   F-LEO-DATOS.
       EXIT.


   END PROGRAM fuente02.

我创建 .dat 文件取消注释第 59 行(PERFORM GRABO-DATOS THRU F-GRABO-DATOS),并创建 .dat 文件,然后我尝试读取这个文件取消注释第 60 行(PERFORM LEO-DATOS THRU F-LEO-DATOS ), 然后再次编译

cobc -m fuente02.cbl

但是当我执行 .so 文件时,在 linux 终端中这并没有显示任何内容,甚至是错误。我希望读取文件并使用显示命令显示数据。

我不知道这是否需要一些额外的参数或其他选项,我从 gnucobol 开始,一开始是一条曲折的道路。

terminal cobol gnucobol cobol85
© www.soinside.com 2019 - 2024. All rights reserved.