Pesquisa em Arquivo Texto

Delphi

09/11/2006

Olá

Tenho um arquivo texto separado por colunas, como uma tabela. Preciso saber como fazer uma pesquisa neste arquivo. Como se fosse um FindKey. Não queria fazer com loop porque o processo fica lento. Acho que eu poderia fazer com função recursiva mas ainda não sei como eu faria essa função.

Se alguém puder me ajudar eu agradeço

Daniel


Dpbraz

Dpbraz

Curtidas 0

Respostas

Tnaires

Tnaires

09/11/2006

Olá
Você pode simplesmente carregar o arquivo texto para um StringList (usando o método LoadFromFile) e usar o método Find para localizar a string, ou mesmo usar a função Pos na propriedade Text do StringList.
Abraços


GOSTEI 0
Dpbraz

Dpbraz

09/11/2006

Olá amigo

Tentei usar o método loadfromfile e dá erro na execução.

Cannot open file ´c:\arquivo.txt´

Segue abaixo o fragmento do código:

var
Arquivo : TStringList;
begin
Arquivo := TStringList.Create;
Arquivo.LoadFromFile(´c:\arquivo.txt´);


GOSTEI 0
Dpbraz

Dpbraz

09/11/2006

Olá

Descobri que o erro está no arquivo texto. Agora não sei qual é o problema do arquivo.

Para gerar este arquivo texto eu fiz da seguinte forma:

var
f:textfile;
x,y:integer;
s, sLinha : string;
begin
if not SelectDirectory(´Selecione uma pasta´, ´´, s) then exit;

screen.cursor := crHourGlass;
assignfile (f,s+´\Arquivo.txt´);
rewrite (f);
tbEstoque.DisableControls;
while not tbEstoque.EOF do
begin
sLinha := MyReplicate(´ ´, 100);
Insert(tbEstoque.FieldByName(´cd_barra´).AsString, sLinha, 1);
Insert(tbEstoque.FieldByName(´cd_produto´).AsString, sLinha, 19);
Insert(tbEstoque.FieldByName(´calc_produto´).AsString, sLinha, 38);
sLinha := copy(sLinha, 1, 100);

writeln (f, sLinha);
tbEstoque.next;
Application.ProcessMessages;
end;
tbEstoque.EnableControls;

closefile (f);
screen.cursor := crDefault;

MessageDlg(´Operação Concluída!´, mtInformation, [mbOk], 0);


GOSTEI 0
Rjun

Rjun

09/11/2006

Qual o tamanho do seu arquivo? Tente gerar o arquivo texto através de TStringList também.


GOSTEI 0
Dpbraz

Dpbraz

09/11/2006

Ops. O problema do arquivo texto foi besteira minha.

Consegui fazer minha procura usando o LoadFromFile e o Pos.

Obrigado a todos

Daniel


GOSTEI 0
POSTAR