我正在尝试执行这段代码:
******************************************************************
* 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 开始,一开始是一条曲折的道路。