dariodr
10 de febrero de 2023, 09:04
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.
identification division.
program-id. agenda.
*
environment division.
input-output section.
file-control.
select agenda assign to "agenda.txt".
*
data division.
file section.
fd agenda
recording mode f.
01 persona.
03 nombre pic x(10).
03 edad pic 99.
03 direccion pic x(25).
03 telefono pic 9(7).
working-storage section.
01 i pic 99.
*
procedure division.
proceso.
*------ abrir archivo para escritura -----
open output agenda.
*---- ingreso de datos ------
perform varying i from 1 by 1 until i > 3
display "Datos de la persona Nro " i ": "
perform leer-datos
write persona
end-perform.
close agenda.
stop run.
leer-datos.
display "Nombre: " no advancing.
accept nombre.
display "Edad: " no advancing.
accept edad.
display "Direccion: " no advancing.
accept direccion.
display "Telefono: " no advancing.
accept telefono.
Codigo para leer el archivo.
identification division.
program-id. agendalee.
environment division.
input-output section.
file-control.
select agenda assign to "agenda.txt"
organization is line sequential.
data division.
file section.
fd agenda.
01 persona.
05 nombre pic x(20).
05 edad pic 99.
05 direccion pic x(30).
05 telefono pic x(12).
working-storage section.
01 fin-archivo pic a value "N".
procedure division.
proceso.
open input agenda.
perform until fin-archivo = "S"
read agenda
at end move "S" to fin-archivo
not at end perform lista-personas
end-read
end-perform.
close agenda.
stop run.
lista-personas.
display 'Nombre: ' nombre.
display 'Edad: ' edad.
display 'Direccion: ' direccion.
display 'Telefono: ' telefono.
Saludos.
Codigo para crear el archivo.
identification division.
program-id. agenda.
*
environment division.
input-output section.
file-control.
select agenda assign to "agenda.txt".
*
data division.
file section.
fd agenda
recording mode f.
01 persona.
03 nombre pic x(10).
03 edad pic 99.
03 direccion pic x(25).
03 telefono pic 9(7).
working-storage section.
01 i pic 99.
*
procedure division.
proceso.
*------ abrir archivo para escritura -----
open output agenda.
*---- ingreso de datos ------
perform varying i from 1 by 1 until i > 3
display "Datos de la persona Nro " i ": "
perform leer-datos
write persona
end-perform.
close agenda.
stop run.
leer-datos.
display "Nombre: " no advancing.
accept nombre.
display "Edad: " no advancing.
accept edad.
display "Direccion: " no advancing.
accept direccion.
display "Telefono: " no advancing.
accept telefono.
Codigo para leer el archivo.
identification division.
program-id. agendalee.
environment division.
input-output section.
file-control.
select agenda assign to "agenda.txt"
organization is line sequential.
data division.
file section.
fd agenda.
01 persona.
05 nombre pic x(20).
05 edad pic 99.
05 direccion pic x(30).
05 telefono pic x(12).
working-storage section.
01 fin-archivo pic a value "N".
procedure division.
proceso.
open input agenda.
perform until fin-archivo = "S"
read agenda
at end move "S" to fin-archivo
not at end perform lista-personas
end-read
end-perform.
close agenda.
stop run.
lista-personas.
display 'Nombre: ' nombre.
display 'Edad: ' edad.
display 'Direccion: ' direccion.
display 'Telefono: ' telefono.