Fórum Leitura de um TXT a partir de uma linha especifica #357322
18/04/2008
0
Senhores, bom dia !
Preciso ler um arquivo TXT, efetuar algumas alterações e gravar este arquivo.
O procedimento que estou usando está funcionando, mas está muito lento, pelo fato de varrer o arquivo todo. Na verdade eu não preciso ler o arquivo inteiro somente algumas linhas. Por exemplo, meu arquivo TXT está assim:
00000 LINHA 1
00001 LINHA 2
00002 LINHA 3
00002 LINHA 4
00003 LINHA 5
00005 LINHA 6
00006 LINHA 7
00006 LINHA 8
00007 LINHA 9
Eu só preciso ler as linhas que comecem com ´00006´. Como faço para ir direto para esta linha , sem precisar varrer linha por linha ?
O procedimento que estou utilizando é este:
var
L: TStringList;
i: integer;
begin
L:= TStringList.Create;
try
L.LoadFromFile(arq);
i:= 0;
While i < L.Count do
begin
if Copy(L[i], 1, 5) = ´00006´ then
begin
memLista.Lines.Add(L[i]);
end;
inc(i);
end;
Lista.SaveToFile(arq);
finally
Lista.Free;
end;
Alguém poderia me ajudar? Algum exemplo?
Preciso ler um arquivo TXT, efetuar algumas alterações e gravar este arquivo.
O procedimento que estou usando está funcionando, mas está muito lento, pelo fato de varrer o arquivo todo. Na verdade eu não preciso ler o arquivo inteiro somente algumas linhas. Por exemplo, meu arquivo TXT está assim:
00000 LINHA 1
00001 LINHA 2
00002 LINHA 3
00002 LINHA 4
00003 LINHA 5
00005 LINHA 6
00006 LINHA 7
00006 LINHA 8
00007 LINHA 9
Eu só preciso ler as linhas que comecem com ´00006´. Como faço para ir direto para esta linha , sem precisar varrer linha por linha ?
O procedimento que estou utilizando é este:
var
L: TStringList;
i: integer;
begin
L:= TStringList.Create;
try
L.LoadFromFile(arq);
i:= 0;
While i < L.Count do
begin
if Copy(L[i], 1, 5) = ´00006´ then
begin
memLista.Lines.Add(L[i]);
end;
inc(i);
end;
Lista.SaveToFile(arq);
finally
Lista.Free;
end;
Alguém poderia me ajudar? Algum exemplo?
Chrismiller
Curtir tópico
+ 0
Responder
Posts
24/04/2008
Tiagotecchio
Tentou ler com TexFile e ReadLn?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)