JonathanDemons_123
29 de enero de 2024, 19:44
Buenas tardes:
Estoy aprendiendo cobol, estoy en leer un archivo, pero al querer leerlo, me sale el siguiente error:
953
Esta es la estructura de la linea, me sale el error cuando quiero imprimir la linea del 38 al 41, pienso que es porque en esa linea hay espacio en blanco:
50502121 MM01000000000922000268 B04B1688035B4426
50538000 MM01000000000127420265 AA15 B04B115850952110
Aprovechando otra duda??
Como se declara variables decimales, y como se asigna el valor, tomando como ejemplo estas lineas:
Asi tengo de ejemplo de declarar variable decimal, 05 DIGITOS PIC S9(12)V9(2).
50502121 MM01000000000922000268 B04B1688035B4426
50538000 MM01000000000127420265 AA15 B04B115850952110
Para las primeras lineas seria: 2.68 y la segunda 2.65, pero el como pasar a decimal, es que no lo he encontrado.
*-------------------------------------------------
IDENTIFICATION DIVISION.
*--------------------------------------------------
PROGRAM-ID. visorR3.
AUTHOR. A
DATE-WRITTEN. 2023
SECURITY. ============================================
============================================
*-------------------------------------------------------------------
ENVIRONMENT DIVISION.
*-------------------------------------------------------------------
CONFIGURATION SECTION.
SOURCE-COMPUTER. UNIX.
OBJECT-COMPUTER. UNIX.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT RTRES ASSIGN TO "./RR3DKBB.330"
ORGANIZATION IS LINE SEQUENTIAL.
*--------------------------------------------------------------
DATA DIVISION.
FILE SECTION.
FD RTRES.
01 REGISTRO.
05 TIPOREG PIC X(2).
05 R3 PIC X(156).
05 TIPOMOV PIC X(2).
05 CUENTA PIC X(5).
05 SOCIEDAD PIC X(4).
05 DIGITOS PIC S9(12)V9(2).
05 LUGAR PIC X(4).
05 CENT PIC X(5).
************************************************** ****************
WORKING-STORAGE SECTION.
01 FDR3.
05 WS-STUDENT-ID PIC 9(15).
05 WS-NAME PIC A(55).
01 FIN PIC A(1).
************************************************** ****************
PROCEDURE DIVISION.
************************************************** ****************
OPEN INPUT RTRES.
PERFORM UNTIL FIN='Y'
READ RTRES INTO FDR3
AT END MOVE 'Y' TO FIN
NOT AT END
IF FDR3(1:2) = "50" OR FDR3(1:2)= "40"
DISPLAY "LINEA"
MOVE FDR3(1:2) TO TIPOREG
DISPLAY TIPOREG
MOVE FDR3(10:13) TO SOCIEDAD
DISPLAY SOCIEDAD
MOVE FDR3(28:31) TO LUGAR
DISPLAY LUGAR
MOVE FDR3(32:36) TO CENT
DISPLAY CENT
DISPLAY FDR3(38:39)***********Esta linea es la que me marca error
END-IF
END-READ
END-PERFORM.
CLOSE RTRES.
STOP RUN.
Estoy aprendiendo cobol, estoy en leer un archivo, pero al querer leerlo, me sale el siguiente error:
953
Esta es la estructura de la linea, me sale el error cuando quiero imprimir la linea del 38 al 41, pienso que es porque en esa linea hay espacio en blanco:
50502121 MM01000000000922000268 B04B1688035B4426
50538000 MM01000000000127420265 AA15 B04B115850952110
Aprovechando otra duda??
Como se declara variables decimales, y como se asigna el valor, tomando como ejemplo estas lineas:
Asi tengo de ejemplo de declarar variable decimal, 05 DIGITOS PIC S9(12)V9(2).
50502121 MM01000000000922000268 B04B1688035B4426
50538000 MM01000000000127420265 AA15 B04B115850952110
Para las primeras lineas seria: 2.68 y la segunda 2.65, pero el como pasar a decimal, es que no lo he encontrado.
*-------------------------------------------------
IDENTIFICATION DIVISION.
*--------------------------------------------------
PROGRAM-ID. visorR3.
AUTHOR. A
DATE-WRITTEN. 2023
SECURITY. ============================================
============================================
*-------------------------------------------------------------------
ENVIRONMENT DIVISION.
*-------------------------------------------------------------------
CONFIGURATION SECTION.
SOURCE-COMPUTER. UNIX.
OBJECT-COMPUTER. UNIX.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT RTRES ASSIGN TO "./RR3DKBB.330"
ORGANIZATION IS LINE SEQUENTIAL.
*--------------------------------------------------------------
DATA DIVISION.
FILE SECTION.
FD RTRES.
01 REGISTRO.
05 TIPOREG PIC X(2).
05 R3 PIC X(156).
05 TIPOMOV PIC X(2).
05 CUENTA PIC X(5).
05 SOCIEDAD PIC X(4).
05 DIGITOS PIC S9(12)V9(2).
05 LUGAR PIC X(4).
05 CENT PIC X(5).
************************************************** ****************
WORKING-STORAGE SECTION.
01 FDR3.
05 WS-STUDENT-ID PIC 9(15).
05 WS-NAME PIC A(55).
01 FIN PIC A(1).
************************************************** ****************
PROCEDURE DIVISION.
************************************************** ****************
OPEN INPUT RTRES.
PERFORM UNTIL FIN='Y'
READ RTRES INTO FDR3
AT END MOVE 'Y' TO FIN
NOT AT END
IF FDR3(1:2) = "50" OR FDR3(1:2)= "40"
DISPLAY "LINEA"
MOVE FDR3(1:2) TO TIPOREG
DISPLAY TIPOREG
MOVE FDR3(10:13) TO SOCIEDAD
DISPLAY SOCIEDAD
MOVE FDR3(28:31) TO LUGAR
DISPLAY LUGAR
MOVE FDR3(32:36) TO CENT
DISPLAY CENT
DISPLAY FDR3(38:39)***********Esta linea es la que me marca error
END-IF
END-READ
END-PERFORM.
CLOSE RTRES.
STOP RUN.