Fórum Consulta em um campo MEMO #187135
08/10/2003
0
Quero colocar um edit onde o cliente vai digitar algumas palavras e o sistema vai ter que procurar nesse campo MEMO, me listando depois todos os registros que possuem essas palavras ...
Tem como fazer isso ???
Abraço
Arc
Curtir tópico
+ 0Posts
08/10/2003
Arc
Gostei + 0
23/10/2003
Machado
Gostei + 0
24/10/2003
Imoreira
begin
Palavras.Clear;
if Pos(DeleteCaracter, Str) = 0 then begin
Palavras.Add(Str);
Exit;
end;
while Pos(DeleteCaracter, Str) <> 0 do begin
Palavras.Add(Copy(Str, 1, Pos(DeleteCaracter, Str) - 1));
Str:= Copy(Str, Pos(DeleteCaracter, Str) + 1, Length(Str));
end;
Palavras.Add(Str);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
Palavras,lista: TStringList;
x,y:integer;
begin
Palavras:= TStringList.Create;
Lista:=TStringList.Create;
for x:=0 to length(edit.text)-1 do begin
QuebraPalavras(edit.text,´ ´,Palavras);
for y:=0 to palavras.Count-1 do begin
lista.Add(palavras[y]);
end;
end;
with qry do begin
close;
with sql do begin
CLEAR;
add(´select mensagem from mensagemrecibos where ´);
for x:=0 to lista.Count-1 do begin
add(´ mensagem LIKE ´+quotedstr(´¬´+lista.Strings[x]+´¬´));
add(´ OR ´);
end;
delete(sql.Count-1);
end;
open;
end;
end;
Gostei + 0
24/10/2003
Valdir.santos
cboTexto1: ComboBox. Opções: 1-Em qualquer posição 2-No início do campo
cboTexto2: ComboBox. Opções: 1-Todas as palavras 2- Qualquer palavra
sTexto:=Trim(edtTexto.Text);
if sTexto <> ´´ then begin
if RightStr(sTexto,1) <> ´;´ then
sTexto:=sTexto+´;´;
iPalavras:=1;
while Pos(´;´,sTexto) > 0 do begin
sPalavra:=LeftStr(sTexto,Pos(´;´,sTexto)-1);
if sPalavra <> ´´ then begin
if sWhere <> ´´ then
sWhere:=sWhere+
Iif((cboTexto2.ItemIndex=0)
or (iPalavras=1),´ AND ´,´ OR ´);
if iPalavras = 1 then
sWhere:=sWhere+´( ´;
sWhere:=sWhere+
´P.Mem_Texto LIKE ´+QuotedStr(
Iif(cboTexto1.ItemIndex=0,´¬´,´´)+
sPalavra+´¬´);
Inc(iPalavras);
end;
sTexto:=Trim(RightStr(sTexto,Length(sTexto)-Pos(´;´,sTexto)));
end;
sWhere:=sWhere+´ )´;
end;
qry.SQL.Text:=´SELECT * FROM Cadastro WHERE ´+sWhere;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)