Leitura de arquivos TXT
Alguem possui uma dica para que a leitura de arquivos txt através do delphi seja rápida? Tenho realizado testes e verifiquei que este processo vai ficando lento.
Desde já agradeço.
Desde já agradeço.
Alex Maia
Curtidas 0
Respostas
Motta
17/09/2005
Arquivos muito grandes ?
Esta dica é comum , dê uma pesquisada e verá muitas possíveis soluções.
Esta dica é comum , dê uma pesquisada e verá muitas possíveis soluções.
GOSTEI 0
Afarias
17/09/2005
var
f: TextFile;
s: string;
begin
AssignFile(f, ´c:\arquivo.txt´);
Reset(f);
try
while not Eof(f) do
begin
Readln(f, s);
{ faça algo com s }
end;
finally
CloseFile(f);
end;
end;T+
GOSTEI 0
Rjun
17/09/2005
Se os arquivos não forem muito grande, você pode usar um TStringList.
GOSTEI 0
Alex Maia
17/09/2005
Preciso para leitura de arquivos grandes, pois são arquivos de retorno dos bancos. Alguma idéia??
GOSTEI 0
Rjun
17/09/2005
Bom, não sei o q vc considera como grande. Faça o teste com TStringList e tire suas próprias conclusões.
var Arquivo: TStringList; i: Integer; begin Arquivo := TStringList.Create; try Arquivo.LoadFromFile(NomedoArquivo.Txt); for i := 0 to Arquivo.Count - 1 do begin // Para acessar uma linha do arquivo use // Arquivo.Strings[i]; ShowMessage(Arquivo.Strings[i]); end; finally FreeAndNil(Arquivo); end; end;
GOSTEI 0
Rogick
17/09/2005
Vc pode usar a função FileOpen para abrir, FileRead para ler a linha e FileClose para fechar o arquivo.
Como neste exemplo:
Isso funciona bem.
Espero ter ajudado
Como neste exemplo:
var arqHanlde: Integer; buffer: array[0..401] of Char; // Se o arquivo for CNAB400 begin arqHandle := FileOpen(arquivo); // Abrir o arquivo FileRead(arqHandle, buffer, 10); // Fazer as leituras que quiser .... FileClose(arqHandle); // Fechar o arquivo end;
Isso funciona bem.
Espero ter ajudado
GOSTEI 0
Dedi
17/09/2005
Vc pode tambem colocar a rotina de leitura e tratamento de texto em uma thread com isso o aplicativo ganha um pouco mais de performace. se vc tem duvida sobre thread procure aqui no forum, tem muita informação sobre o assunto.
GOSTEI 0