Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   COBOL - General (https://www.cobolforo.es/forumdisplay.php?f=44)
-   -   [Duda] Leer archivos COBOL (https://www.cobolforo.es/showthread.php?t=1612)

dariodr 10 de febrero de 2023 09:04

Leer archivos COBOL
 
1 Archivos Adjunto(s)
Hola, amigos coboleros otra vez yo (jeje). Tengo estos dos codigos uno es para crear un archivo y el otro es para leerlo, el problema esta que a la hora de leerlo lo hace en forma desordenada, donde esta mi error.
Saludos.

Codigo para crear el archivo.
Código COBOL:
  1.        identification division.
  2.        program-id. agenda.
  3.      *
  4.        environment division.
  5.        input-output section.
  6.        file-control.
  7.            select agenda assign to "agenda.txt".
  8.  
  9.       *
  10.        data division.
  11.        file section.
  12.        fd  agenda
  13.            recording mode f.
  14.        01  persona.
  15.            03 nombre     pic x(10).
  16.            03 edad       pic 99.
  17.            03 direccion  pic x(25).
  18.            03 telefono   pic 9(7).
  19.        working-storage section.
  20.        01  i    pic 99.
  21.      *
  22.        procedure division.
  23.        proceso.
  24.      *------ abrir archivo para escritura -----
  25.            open output agenda.
  26.  
  27.       *---- ingreso de datos ------
  28.            perform varying i from 1 by 1 until i > 3
  29.                display "Datos de la persona Nro " i ": "
  30.                perform leer-datos
  31.                write persona
  32.            end-perform.
  33.            close agenda.
  34.            stop run.
  35.  
  36.        leer-datos.
  37.            display "Nombre: " no advancing.
  38.            accept nombre.
  39.            display "Edad: " no advancing.
  40.            accept edad.
  41.            display "Direccion: " no advancing.
  42.            accept direccion.
  43.            display "Telefono: " no advancing.
  44.            accept telefono.

Codigo para leer el archivo.
Código COBOL:
  1.        identification division.
  2.        program-id. agendalee.
  3.  
  4.        environment division.
  5.        input-output section.
  6.        file-control.
  7.            select agenda assign to "agenda.txt"
  8.                organization is line sequential.
  9.  
  10.        data division.
  11.        file section.
  12.        fd  agenda.
  13.        01  persona.
  14.            05 nombre       pic x(20).
  15.            05 edad         pic 99.
  16.            05 direccion    pic x(30).
  17.            05 telefono     pic x(12).
  18.        working-storage section.
  19.        01  fin-archivo     pic a value "N".
  20.  
  21.        procedure division.
  22.        proceso.
  23.            open input agenda.
  24.            perform until fin-archivo = "S"
  25.                read agenda
  26.                    at end move "S" to fin-archivo
  27.                    not at end perform lista-personas
  28.                end-read
  29.            end-perform.
  30.            close agenda.
  31.            stop run.
  32.  
  33.        lista-personas.
  34.            display 'Nombre: ' nombre.
  35.            display 'Edad: ' edad.
  36.            display 'Direccion: ' direccion.
  37.            display 'Telefono: ' telefono.

Kuk 10 de febrero de 2023 12:04

@dariodr, las estructuras que usas en escritura y en lectura son diferentes:

Código COBOL:
  1.        01  persona.
  2.            03 nombre     pic x(10).
  3.            03 edad       pic 99.
  4.            03 direccion  pic x(25).
  5.            03 telefono   pic 9(7).
  6.  
  7.        01  persona.
  8.            05 nombre       pic x(20).
  9.            05 edad         pic 99.
  10.            05 direccion    pic x(30).
  11.            05 telefono     pic x(12).


La franja horaria es GMT +2. Ahora son las 07:32.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.