Ayuda PLZ...
Publicado por Manuel Soto (2 intervenciones) el 01/11/2005 04:05:31
He Hecho este programa para practicar un poco con el tipo registro y con archivos, pero hay un error y no logro encontrarlo; el programa lo puedo compilar y no me da error lo ejecuto en el editor de pascal y tampoco me da ningun mensaje de error, pero hay una seccion en el codigo en la que en teoria el programa deberia pararse y esperar a que el ususario ingrese los datos que se piden, pero pero no lo hace, de hecho, se pide los 2 ultimos y mas nada, el primer dato lo pasa de largo...
Esto me tiene frustrado... AYUDENME POR FAVOR....
Gracias de antemano....
Program Practica_de_Archivo;
Uses
Crt;
Const
CMax = 100000000;
Type
TCedula = 0..CMax;
TDatos = record
Nombre : string[30];
Apellido: string[30];
Cedula : TCedula;
end;
TArchivo = FILE of TDatos;
TOpcion = 1..3;
Var
VarDatos : TDatos;
VarArchivo : TArchivo;
VarOpcion : TOpcion;
Function MenuOpcion : TOpcion;
Var
op : TOpcion;
begin
HighVideo;
WriteLn('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
WriteLn('º******PRUEBA DE ARCHIVO******º');
WriteLn('ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
WriteLn('º Elija una opcion: º');
WriteLn('º º');
WriteLn('º 1.- Nuevo. º');
WriteLn('º 2.- Abrir. º');
WriteLn('º 3.- Salir. º');
WriteLn('ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
WriteLn('º Su opcion: º');
WriteLn('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
NormVideo;
Read(op);
MenuOpcion := op;
end;
Procedure NuevoArchivo;
Var
NomArchivo : string[30];
function NombreArchivo : string;
Const
CNombre : string[30] = 'Lista.DAT';
begin { NombreArc }
Write('Nombre del Archivo: ');
Read(CNombre); WriteLn;
NombreArchivo := CNombre;
end; { NombreArc}
begin { NuevoArchivo }
ClrScr;
with VarDatos do
begin
Write('Nombre : ');
ReadLn(Nombre); WriteLn;
Write('Apellido: ');
ReadLn(Apellido); WriteLn;
Write('Cedula : ');
ReadLn(Cedula); WriteLn;
end;
WriteLn;
NomArchivo := NombreArchivo;
ASSIGN(VarArchivo, NomArchivo);
REWRITE(VarArchivo);
WRITE(VarArchivo, VarDatos);
CLOSE(VarArchivo);
Write('Archivo Escrito.');
Delay(2000);
end; { NuevoArchivo }
Procedure AbreArchivo;
Var
NomArchivo : string[30];
begin { AbreArchivo }
ClrScr;
Write('Nombre de Archivo: '); ReadLn(NomArchivo);
ASSIGN(VarArchivo, NomArchivo);
RESET(VarArchivo);
READ(VarArchivo, VarDatos);
with VarDatos do
begin
WriteLn('Nombre : ', Nombre);
WriteLn('Apellido: ', Apellido);
WriteLn('Cedula : ', Cedula);
end;
CLOSE(VarArchivo);
ReadLn;
end; { AbreArchivo }
BEGIN { Practica_de_Archivo }
repeat
ClrScr;
VarOpcion := MenuOpcion;
case VarOpcion of
1 : NuevoArchivo;
2 : AbreArchivo;
3 : begin
ClrScr;
GotoXY(35,20);
WriteLn('Hasta Luego.');
Delay(1000);
end;
else
begin
WriteLn('Opcion no valida, intentalo de nuevo.');
Delay(1000);
end; { Else }
end; { Case Of }
until (VarOpcion = 3);
END. { Practica_de_Archivo }
Esto me tiene frustrado... AYUDENME POR FAVOR....
Gracias de antemano....
Program Practica_de_Archivo;
Uses
Crt;
Const
CMax = 100000000;
Type
TCedula = 0..CMax;
TDatos = record
Nombre : string[30];
Apellido: string[30];
Cedula : TCedula;
end;
TArchivo = FILE of TDatos;
TOpcion = 1..3;
Var
VarDatos : TDatos;
VarArchivo : TArchivo;
VarOpcion : TOpcion;
Function MenuOpcion : TOpcion;
Var
op : TOpcion;
begin
HighVideo;
WriteLn('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
WriteLn('º******PRUEBA DE ARCHIVO******º');
WriteLn('ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
WriteLn('º Elija una opcion: º');
WriteLn('º º');
WriteLn('º 1.- Nuevo. º');
WriteLn('º 2.- Abrir. º');
WriteLn('º 3.- Salir. º');
WriteLn('ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹');
WriteLn('º Su opcion: º');
WriteLn('ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ');
NormVideo;
Read(op);
MenuOpcion := op;
end;
Procedure NuevoArchivo;
Var
NomArchivo : string[30];
function NombreArchivo : string;
Const
CNombre : string[30] = 'Lista.DAT';
begin { NombreArc }
Write('Nombre del Archivo: ');
Read(CNombre); WriteLn;
NombreArchivo := CNombre;
end; { NombreArc}
begin { NuevoArchivo }
ClrScr;
with VarDatos do
begin
Write('Nombre : ');
ReadLn(Nombre); WriteLn;
Write('Apellido: ');
ReadLn(Apellido); WriteLn;
Write('Cedula : ');
ReadLn(Cedula); WriteLn;
end;
WriteLn;
NomArchivo := NombreArchivo;
ASSIGN(VarArchivo, NomArchivo);
REWRITE(VarArchivo);
WRITE(VarArchivo, VarDatos);
CLOSE(VarArchivo);
Write('Archivo Escrito.');
Delay(2000);
end; { NuevoArchivo }
Procedure AbreArchivo;
Var
NomArchivo : string[30];
begin { AbreArchivo }
ClrScr;
Write('Nombre de Archivo: '); ReadLn(NomArchivo);
ASSIGN(VarArchivo, NomArchivo);
RESET(VarArchivo);
READ(VarArchivo, VarDatos);
with VarDatos do
begin
WriteLn('Nombre : ', Nombre);
WriteLn('Apellido: ', Apellido);
WriteLn('Cedula : ', Cedula);
end;
CLOSE(VarArchivo);
ReadLn;
end; { AbreArchivo }
BEGIN { Practica_de_Archivo }
repeat
ClrScr;
VarOpcion := MenuOpcion;
case VarOpcion of
1 : NuevoArchivo;
2 : AbreArchivo;
3 : begin
ClrScr;
GotoXY(35,20);
WriteLn('Hasta Luego.');
Delay(1000);
end;
else
begin
WriteLn('Opcion no valida, intentalo de nuevo.');
Delay(1000);
end; { Else }
end; { Case Of }
until (VarOpcion = 3);
END. { Practica_de_Archivo }
Valora esta pregunta


0