Ver Mensaje Individual
  #1
Antiguo 9 de marzo de 2023, 03:50
dariodr
Forero
Última Actividad 22.09.2026 10:37
Posts Posts: 57
Likes enviados Enviados: 17
Likes recibidos Recibidos: 11
Configuración No puedo leer archivos.
0 Inactivo Inactivo

Buenas coboleros, otra vez por aqui.
Tengo dos codigos: uno para crear y agregar datos a un archivo y otro para leer el archivo, pero a la hora de leer el archivo me aparecen errores. Dejo los dos codigos.
NOTA: Son archivos indexados.

Codigo para crear archivo.
Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. MAIN.
  3.  
  4.        ENVIRONMENT DIVISION.
  5.        INPUT-OUTPUT SECTION.
  6.        FILE-CONTROL.
  7.            SELECT OPTIONAL EMPLEADOS-ARCHIVO
  8.                 ASSIGN TO "emple.dat"
  9.                 ORGANIZATION IS LINE SEQUENTIAL.
  10.  
  11.        DATA DIVISION.
  12.        FILE SECTION.
  13.        FD  EMPLEADOS-ARCHIVO.
  14.        01 EMPLEADOS-REGISTRO.
  15.            05 EMPLEADOS-ID          PIC X(6).
  16.            05 EMPLEADOS-NOMBRE      PIC X(25).
  17.            05 EMPLEADOS-APELLIDOS   PIC X(35).
  18.            05 EMPLEADOS-EDAD        PIC X(3).
  19.            05 EMPLEADOS-TELEFONO    PIC X(9).
  20.            05 EMPLEADOS-DIRECCION   PIC X(35).
  21.        WORKING-STORAGE SECTION.
  22.        01  IDENTIFICADOR    PIC X(37)
  23.                 VALUE "Introduce un ID del nuevo empleado: ".
  24.        01  NOMBRE           PIC X(35)
  25.                 VALUE "Introduce un nombre del empleado: ".
  26.        01  APELLIDOS        PIC X(25)            
  27.                 VALUE "Introduce los apellidos: ".
  28.        01  EDAD             PIC X(20)
  29.                 VALUE "Introduce la edad: ".
  30.        01  TELEFONO         PIC X(33)
  31.                 VALUE "Introduce un numero de telefono: ".
  32.        01  DIRECCION        PIC X(26)
  33.                 VALUE "Introduce una direccion: ".
  34.        01  SI-NO      PIC X.
  35.        01  ENTRADA    PIC X.
  36.  
  37.        PROCEDURE DIVISION.
  38.        INICIO-PROGRAMA.
  39.            PERFORM PROCEDIMIENTO-APERTURA.
  40.            MOVE "S" TO SI-NO.
  41.            PERFORM AGREGAR-REGISTROS UNTIL SI-NO = "N".
  42.            PERFORM PROCEDIMIENTO-CIERRE.
  43.        FIN-PROGRAMA.
  44.            STOP RUN.
  45.  
  46.        PROCEDIMIENTO-APERTURA.
  47.            OPEN EXTEND EMPLEADOS-ARCHIVO.
  48.  
  49.        PROCEDIMIENTO-CIERRE.
  50.            CLOSE EMPLEADOS-ARCHIVO.
  51.  
  52.        AGREGAR-REGISTROS.
  53.            MOVE "N" TO ENTRADA.
  54.            PERFORM OBTENER-CAMPOS UNTIL ENTRADA = "S".
  55.            PERFORM ESCRIBIR-REGISTRO.
  56.            PERFORM REINICIAR.
  57.  
  58.        OBTENER-CAMPOS.
  59.            MOVE SPACE TO EMPLEADOS-REGISTRO.
  60.            DISPLAY IDENTIFICADOR " ? ".
  61.            ACCEPT EMPLEADOS-ID.
  62.            DISPLAY NOMBRE " ? ".
  63.            ACCEPT EMPLEADOS-NOMBRE.
  64.            DISPLAY APELLIDOS " ? ".
  65.            ACCEPT EMPLEADOS-APELLIDOS.
  66.            DISPLAY EDAD " ? ".
  67.            ACCEPT EMPLEADOS-EDAD.
  68.            DISPLAY TELEFONO "?".
  69.            ACCEPT EMPLEADOS-TELEFONO
  70.            DISPLAY DIRECCION.
  71.            ACCEPT EMPLEADOS-DIRECCION.
  72.            PERFORM CONTINUAR.
  73.  
  74.        CONTINUAR.
  75.            MOVE "S" TO ENTRADA.
  76.            IF  EMPLEADOS-NOMBRE = SPACE
  77.                MOVE "N" TO ENTRADA
  78.            END-IF.
  79.  
  80.        ESCRIBIR-REGISTRO.
  81.            WRITE EMPLEADOS-REGISTRO.
  82.  
  83.        REINICIAR.
  84.            DISPLAY "Desea almacenar otro registro s/n".
  85.            ACCEPT SI-NO.
  86.            IF SI-NO = "s"
  87.                MOVE "S" TO SI-NO.
  88.            IF SI-NO NOT = "S"
  89.                MOVE "N" TO SI-NO.        

Codigo para leer archivo
Código COBOL:
  1.        IDENTIFICATION DIVISION.
  2.        PROGRAM-ID. MAIN.
  3.  
  4.        ENVIRONMENT DIVISION.
  5.        INPUT-OUTPUT SECTION.
  6.        FILE-CONTROL.
  7.            SELECT EMPLEADOS-ARCHIVO
  8.                 ASSIGN TO "emple.dat"
  9.                 ORGANIZATION IS INDEXED
  10.                 RECORD KEY IS EMPLEADOS-ID
  11.                 ACCESS MODE IS DYNAMIC.
  12.  
  13.        DATA DIVISION.
  14.        FILE SECTION.
  15.        FD  EMPLEADOS-ARCHIVO.
  16.        01  EMPLEADOS-REGISTRO.
  17.            05 EMPLEADOS-ID          PIC X(6).
  18.            05 EMPLEADOS-NOMBRE      PIC X(25).
  19.            05 EMPLEADOS-APELLIDOS   PIC X(35).
  20.            05 EMPLEADOS-EDAD        PIC X(3).
  21.            05 EMPLEADOS-TELEFONO    PIC X(9).
  22.            05 EMPLEADOS-DIRECCION   PIC X(35).
  23.        WORKING-STORAGE SECTION.
  24.        77  LEE-TODO                 PIC X.
  25.  
  26.        PROCEDURE DIVISION.
  27.        INICIO-PROGRAMA.
  28.            PERFORM PROCEDIMIENTO-APERTURA.
  29.            MOVE "0" TO LEE-TODO.
  30.            PERFORM LEE-SIGUIENTE-REGISTRO.
  31.            IF LEE-TODO = "1"
  32.             DISPLAY "No se encontraron registros en el archivo."
  33.            ELSE    
  34.                PERFORM MUESTRA-CAMPOS UNTIL LEE-TODO = "1".
  35.                PERFORM PROCEDIMIENTO-DE-CIERRE.
  36.                STOP RUN.
  37.                
  38.        PROCEDIMIENTO-APERTURA.
  39.            OPEN I-O EMPLEADOS-ARCHIVO.
  40.            
  41.        PROCEDIMIENTO-DE-CIERRE.
  42.            CLOSE EMPLEADOS-ARCHIVO.
  43.            
  44.        MUESTRA-CAMPOS.
  45.            DISPLAY "ID: " EMPLEADOS-ID.
  46.            DISPLAY "Nombre: " EMPLEADOS-NOMBRE.
  47.            DISPLAY "Apellidos: " EMPLEADOS-APELLIDOS.
  48.            DISPLAY "Edad: " EMPLEADOS-EDAD.
  49.            DISPLAY "Telefono: " EMPLEADOS-TELEFONO.
  50.            DISPLAY "Direccion: " EMPLEADOS-DIRECCION.
  51.            
  52.        LEE-SIGUIENTE-REGISTRO.
  53.            READ EMPLEADOS-ARCHIVO NEXT RECORD
  54.                AT END MOVE "1" TO LEE-TODO.

Error que aparece en rmcobol
[ATTACH=CONFIG]888[/ATTACH]
Imágenes Adjuntas
 
dariodr is offline   Responder Con Cita