Ver Mensaje Individual
  #3  
Antiguo 04-04-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Reputación: 20
basti Va por buen camino
Si vas a usar un archivo de texto leyéndolo secuencialmente, no podrás saber el número de líneas por adelantado. Si sólo lo quieres saber para usar un Gauge, te puedes basar en el tamaño del archivo y usar los bytes.
Código Delphi [-]
var
  f : file of Byte;
  f1 : TextFile;
  s : string;
begin
  AssignFile(f, 'archivo.txt');
  Reset(f);
  gauge1.MaxValue := Filesize(f);
  CloseFile(f);
  AssignFile(f1, 'archivo.txt');
  Reset(f1);
  while not Eof(f) do
  begin
    Readln(f, s);
    Gauge1.Position := Gauge1.Position + Length(s) + 2;
  end;
  CloseFile(f);
end;
Primero abrimos el archivo como si fuese binario, con valor 1 para el tamaño del registro. Así Filesize nos devuelve el tamaño en bytes (Se podría usar también findfirst, por ejemplo, para saber el tamaño del archivo).

Luego lo vamos leyendo y contando los bytes, el +2 es para contar también el salto de línea (podría ser +1 dependiendo de si usa sólo #13 para salto de línea en vez de #13#10).
Responder Con Cita