Pesquisa em Arquivo Texto
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
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
Curtidas 0
Respostas
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
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
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´);
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
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);
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
09/11/2006
Qual o tamanho do seu arquivo? Tente gerar o arquivo texto através de TStringList também.
GOSTEI 0
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
Consegui fazer minha procura usando o LoadFromFile e o Pos.
Obrigado a todos
Daniel
GOSTEI 0