Fórum Pesquisa em Arquivo Texto #332914
09/11/2006
0
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
Curtir tópico
+ 0Posts
09/11/2006
Tnaires
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
10/11/2006
Dpbraz
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
10/11/2006
Dpbraz
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
10/11/2006
Rjun
Gostei + 0
10/11/2006
Dpbraz
Consegui fazer minha procura usando o LoadFromFile e o Pos.
Obrigado a todos
Daniel
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)