Saber quantas linhas tem um arquivo texto.

13/05/2003

0

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


Hatrix

Hatrix

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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar