Pesquisar palavra em arquivo texto e mostrá-la num Listbox
Olá!
Fiz uma agenda telefônica, onde os dados estão gravados em arquivo texto. Gostaria que o usuário fizesse a pesquisa num Edit e mostrasse o nome da pessa com seu respectivo telefone num Listbox.
Só mais uma coisa: será que no evento Onchange do edit dá para fazer pesquisa incremental associado ao listbox, onde a medida que mais letra eu digito, mais próximo da palavra eu chego?
No aguardo Galera!
Fiz uma agenda telefônica, onde os dados estão gravados em arquivo texto. Gostaria que o usuário fizesse a pesquisa num Edit e mostrasse o nome da pessa com seu respectivo telefone num Listbox.
Só mais uma coisa: será que no evento Onchange do edit dá para fazer pesquisa incremental associado ao listbox, onde a medida que mais letra eu digito, mais próximo da palavra eu chego?
No aguardo Galera!
Bielisilva
Curtidas 0
Respostas
Wanderok
17/03/2008
Passa a estrutura de seu arquivo texto ai....
Mas, adianto que será algo assim:
ler linha a linha seu arq texto.
em cada linha ver se o conteúdo EDIT1.TXT se encontra.
localizando (preciso agora da estrutura do campo texto) pegar o fone.
mostrar em um edit2.text.
se isto ficar em no evento onchange do edit1.txt pode sim ocorrer a cada caracter digitado.
valeu
Mas, adianto que será algo assim:
ler linha a linha seu arq texto.
em cada linha ver se o conteúdo EDIT1.TXT se encontra.
localizando (preciso agora da estrutura do campo texto) pegar o fone.
mostrar em um edit2.text.
se isto ficar em no evento onchange do edit1.txt pode sim ocorrer a cada caracter digitado.
valeu
GOSTEI 0
Bielisilva
17/03/2008
Cara, fiz assim:
NOME FONE
Fulano 3242-3345
Beltrano 9967-1223
Cicrano 3242-6678
No aguardo.
Um abraço!
NOME FONE
Fulano 3242-3345
Beltrano 9967-1223
Cicrano 3242-6678
No aguardo.
Um abraço!
GOSTEI 0
Wanderok
17/03/2008
function TForm1.ProcuraNome(pNome:String):String;
var vNomeDoArquivo, vLinha, vNome, vFone : String;
Arquivo : TextFile;
vTamanho,vInicio,vFim : Integer;
begin
opendialog1.Execute;
vNomeDoArquivo := OpenDialog1.FileName;
AssignFile(Arquivo,vNomeDoArquivo);
Reset(Arquivo);
ReadLn(Arquivo,vLinha);
While (AnsiStrPos(pChar(vLinha),pchar(pNome)) = nil) and (not Eof(Arquivo)) do
begin
ReadLn(Arquivo,vLinha);
end;
if (AnsiStrPos(pChar(vLinha),pChar(pNome)) <> nil) then
begin
vTamanho := length(vLinha);
vInicio := vTamanho-length(pNome)+1;
vFim := vTamanho - vInicio;
Result := Copy(vLinha,vInicio, vFim);
end
else
Result := ´´;
end;
var vNomeDoArquivo, vLinha, vNome, vFone : String;
Arquivo : TextFile;
vTamanho,vInicio,vFim : Integer;
begin
opendialog1.Execute;
vNomeDoArquivo := OpenDialog1.FileName;
AssignFile(Arquivo,vNomeDoArquivo);
Reset(Arquivo);
ReadLn(Arquivo,vLinha);
While (AnsiStrPos(pChar(vLinha),pchar(pNome)) = nil) and (not Eof(Arquivo)) do
begin
ReadLn(Arquivo,vLinha);
end;
if (AnsiStrPos(pChar(vLinha),pChar(pNome)) <> nil) then
begin
vTamanho := length(vLinha);
vInicio := vTamanho-length(pNome)+1;
vFim := vTamanho - vInicio;
Result := Copy(vLinha,vInicio, vFim);
end
else
Result := ´´;
end;
GOSTEI 0
Wanderok
17/03/2008
Nem precisa de vNome e vFone....
ha uma funcao para tratar posicao de string/substr, mas nao me lembrei agora.
abc
ha uma funcao para tratar posicao de string/substr, mas nao me lembrei agora.
abc
GOSTEI 0
Wanderok
17/03/2008
Olha a dica do ´rodc´ !!!!
http://forum.devmedia.com.br/viewtopic.php?p=307272#307272
http://forum.devmedia.com.br/viewtopic.php?p=307272#307272
GOSTEI 0
Bielisilva
17/03/2008
Valeu pela dica, Wanderok.
Grato.
Grato.
GOSTEI 0