Ver Mensaje Individual
  #7  
Antiguo 24-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo.

Se me cruzó una idea para usar FileSize. Un archivo de texto puede ser tomado como un archivo tipado cuyos registros sean de un caracter, es decir
de tipo file of char.

Código Delphi [-]
...
procedure TForm1.ProcessFile(NomArch: string);
var
  F: file of char;
  ch: char;
  s: string;
begin
  AssignFile(F,NomArch);
  Reset(F);
  ProgressBar1.Max:= FileSize(F);
  s:= '';
  while not Eof(F) do
  begin
    Read(F,ch);
    if ch = #13 then
    begin
      (* Aca las operaciones que realices. *)
      Form1.Memo1.Lines.Add(s);
      ProgressBar1.StepBy(Length(s)+2); // Avanza largo de línea en el ProgressBar
      // Application.ProcessMessages; // si lo necesitas
      s:= '';
    end
    else
      s:= s + ch;
  end;
  CloseFile(F);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   ProcessFile('C:\DATOS.txt');
end;
Pero el progreso de la barra es mas parejo en el ejemplo anterior.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-05-2011 a las 15:49:54.
Responder Con Cita