Problema con otro code...
Como veis, lo que hace el programa, es pedir si kieres meter los datos por el teclado, o usar un fichero para leerlo... Lógicamente la primera vez que se ejecute el programa, se tendrá que elegir la opción T, para meter los datos.
Estos datos son escritos en un fichero... Hasta aquí parece que todo fuca bien.
Poro cuando llamo otra vez al programa, y le doy la opción F (fichero), para que me muestre por pantalla los datos que hay en ese fichero, se termina la ejecución del programa, sin mostrar nada...
Por que? Y como lo hago?
Salu2.
Código [Seleccionar]
program cuadros;
type
Tcuadro=record
NumCuadro:integer;
Titulo:string;
Autor:string;
Precio:real;
end;
Tfichero = file of Tcuadro;
procedure lee_cuadro(Var cuadros:Tcuadro);
begin
writeln;
write(' Numero de cuadro: ');
readln(cuadros.NumCuadro);
write(' Titulo cuadro: ');
readln(cuadros.Titulo);
write(' Autor: ');
readln(cuadros.Autor);
write(' Precio: ');
readln(cuadros.Precio);
writeln;
end;
procedure imprime_cuadro(cuadros:Tcuadro);
begin
writeln;
writeln(cuadros.NumCuadro,': ',cuadros.Titulo);
writeln(' Autor: ',cuadros.Autor);
if cuadros.Precio=0 then
writeln(' Precio: No en venta')
else
writeln(' Precio: ',cuadros.Precio:0:2);
writeln('---');
end;
procedure graba_fichero(nombre:string; VAR cuadros:Tcuadro);
var
fichero:Tfichero;
begin
assign (fichero, nombre);
rewrite(fichero);
write(fichero, cuadros);
close(fichero);
end;
procedure lee_fichero(nombre:string; VAR cuadros:Tcuadro);
var
fichero:Tfichero;
begin
assign(fichero, nombre);
reset(fichero);
read(fichero, cuadros);
close(fichero);
end;
var
cuadro1:Tcuadro;
cuadro2:Tcuadro;
nombre:string;
opcion:char;
begin
write('Introducir por teclado (T) o leer de fichero (F)?');
readln(opcion);
if opcion='T' then
begin
writeln('> Datos primer cuadro');
lee_cuadro(cuadro1);
writeln('> Datos segudno cuadro');
lee_cuadro(cuadro2);
write('Nombre del fichero donde guardar?');
readln(nombre);
graba_fichero(nombre, cuadro1);
graba_fichero(nombre, cuadro2);
end
else
if opcion='F' then
begin
write('Nombre del fichero donde leer?');
readln(nombre);
lee_fichero(nombre,cuadro1);
lee_fichero(nombre,cuadro2);
end;
end.
Como veis, lo que hace el programa, es pedir si kieres meter los datos por el teclado, o usar un fichero para leerlo... Lógicamente la primera vez que se ejecute el programa, se tendrá que elegir la opción T, para meter los datos.
Estos datos son escritos en un fichero... Hasta aquí parece que todo fuca bien.
Poro cuando llamo otra vez al programa, y le doy la opción F (fichero), para que me muestre por pantalla los datos que hay en ese fichero, se termina la ejecución del programa, sin mostrar nada...
Por que? Y como lo hago?
Salu2.