Saber quantas linhas tem um arquivo texto.

13/05/2003

1

estou precisando saber quantas linhas tem um arquivo texto para poder colocar um progressbar.


Responder

Posts

13/05/2003

Adriano Santos

Cara, a única forma que conheço é:

1) Abrir
2) Dar um loop até o fim do arquivo incrementando uma variável.

De outra maneira, sem chance.


Responder

13/05/2003

Wizard

Olá, eu faria assim, não sei se e a melhor opção mais serve.


procedure TForm16.Contador;
var
arq : textFile;
linha : string;
begin
AssignFile(arq,´C:\Arquivos de programas\Wizard Company\Gerenciador de Ponto\arqmovim.txt´);
reset(arq);
cont := 0;
while not Eof(arq) do
begin
readln(arq, linha);
cont := cont + 1;
end;
CloseFile(arq);
end;


Espero ter ajudado.

Sd
Wizard


Responder

13/05/2003

Aroldo Zanela

Colega,

Se o comprimento das linhas do arquivo forem variáveis, você vai ter que ler o arquivo de qualquer maneira, por exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var Ler: TStringList;
      nRg: Integer;
begin
  Ler := TStringList.Create;
  Ler.LoadFromFile(´C:\AUTOEXEC.BAT´);
  nRg := Ler.Count; // Armazena a quantidade de linhas
  Application.ProcessMessages;
  Ler.Free;
  Ler := Nil;
end;


Se o arquivo tiver linhas com tamanho fixo, você pode obter o total de registros a partir da divisão do comprimento da linha pelo tamnho total em bytes, veja o exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
  FileHandle: Integer;
  nSize, nLinhas: Integer;
begin
  FileHandle := FileOpen(´C:\RETORNO.237´, fmShareDenyNone);
  if FileHandle > 0 then
  begin
    nSize := FileSeek( FileHandle, 0, 2 );
    nLinhas := nSize div 132;
  end;
  FileClose(FileHandle);
end;



Responder