Saber quantas linhas tem um arquivo texto.

Delphi

13/05/2003

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


Hatrix

Hatrix

Curtidas 0

Respostas

Adriano Santos

Adriano Santos

13/05/2003

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.


GOSTEI 0
Wizard

Wizard

13/05/2003

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


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

13/05/2003

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;



GOSTEI 0
POSTAR