Fórum Quantidade de linhas arquivo texto #156634
29/04/2003
0
Como faço para saber a quantidade exata de linha de um arquivo text:
Estou fazendo da seguinte maneira:
AssignFile(ArqTexto,NomeArq.Text);
Reset(ArqTexto);
:
:
CloseFile(ArqTexto);
só que não estou conseguindo pegar o número total de linhas deste arquivo.
Desde já agradeço
Mariana

Mariana
Curtir tópico
+ 0Post mais votado
29/04/2003
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var arqTexto : TextFile; Caminho : String; Linha : String; Contador: Longint; begin AssignFile(ArqTexto, Caminho); Reset(ArqTexto); Contador := 0; while not(EOF(ArqTexto)) do begin ReadLn(ArqTexto, Linha); Inc(Contador); end; CloseFile(ArqTexto); end; |
Hades

Gostei + 1
Mais Posts
29/04/2003
Smaug_84
Gostei + 0
03/06/2011
Denis Portas
Var
aList: TStringList;
Begin
// Verifico se o arquivo está onde foi passado pelo parâmetro
if FileExists( lcPath ) then
Begin
// Crio a lista que receberá o arquivo
aList := TStringList.Create;
Try
// Carrego o arquivo para dentro da lista
aList.LoadFromFile(lcPath);
// Retorno o número de linhas que o arquivo contem
Result := aList.Count;
Finally
// Destruo o objeto
FreeAndNil(aList);
End;
End
Else
Begin
// Caso eu não encontre o arquivo retorno 0.
Result := 0;
End;
End;
Espero ter ajudado.
Gostei + 0
06/06/2011
Nigro
Gostei + 0
29/04/2013
José
Gostei + 0
26/11/2018
João Filho
Não é uma solução, o stringlist é limitado, se você tentar abrir um arquivo muito grande ele não irá ler e consequentemente não obterá a quantidade de linhas.
Gostei + 0
07/12/2018
João Filho
Motivo:
O StringList possui um tamanho limite que quase seja alcançado voçê irá carregar apenas um pedaço, problema que você não tem ao trabalhar com TextFile. Porém, em questão de performance recomendo trabalhar com TStream, que possui uma performance muito superior ao TextFile.
Segue link abaixo contendo alguns métodos úteis para trabalhar com textfile em forma de stream
https://github.com/eduardofaneli2/Delphi-Utils/blob/master/Comum.StreamUtils.pas
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)