SoloCodigo

Programación General => Pascal => Mensaje iniciado por: TareK en Lunes 21 de Junio de 2004, 21:51

Título: Imprimir Un Archivo
Publicado por: TareK en Lunes 21 de Junio de 2004, 21:51
Hola..
no se que esta mal en este procedimiento. hace que me imprima en pantalla el primer registro muchas veces, y no que vaya imprimiento el resto de los registros del archivo..

Código: Text
  1. procedure imprimirarchivo(var arch   : tarch);
  2. var
  3. fin:boolean;
  4. rarch:trarch;
  5. begin
  6.      clrscr;
  7.   if eof(arch) then
  8.      fin:=true
  9.   else
  10.   begin
  11.        fin:=false;
  12.        read(arch,rarch)
  13.   end;
  14.   while not fin do
  15.         begin
  16.         writeln(rarch.campo1,' ',rarch.campo2);
  17.         if eof(arch) then
  18.            fin:=true;
  19.         end;
  20.   writeln('Fin de Archivo');
  21. end;
  22.  
  23.  

gracias
Título: Re: Imprimir Un Archivo
Publicado por: REDD en Miércoles 7 de Julio de 2004, 02:39
lo que pasa es que dentro del ciclo tienes que leer otravez el archivo si no, la variable se queda con el primer y unico registro que leiste y el puntero del archivo se queda al principio tambien, prueba con esto:

procedure imprimirarchivo(var arch   : tarch);
var
rarch:trarch;
begin
 clrscr;
 while not eof(arch) do
       begin
         read(arch,rarch)
         writeln(rarch.campo1,' ',rarch.campo2);
       end;
 writeln('Fin de Archivo');
end;