La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2353 - ¿COMO BUSCAR TEXTO EN DELPHI?
Autor:  Jose Luis Gómez
A alguien se le ocurre un algoritmo para poder buscar expresiones en un documento de texto (o un richedit) tipo:

amo*: y debería encontrar amor, amorío...
am? : y debería encontrar amo, ama, ...

Gracias,

  Respuesta:  Heriberto Ledesma Sánchez
Tengo este programa...
creo que no cumple al 100% tu peticion, pero creo que sera mas facil adaptarlo a tus necesidades...
de cualquier forma no es tan dificil hacerlo a partir de este (bueno eso digo yo) :)

procedure TForm1.Button1Click(Sender: TObject);
Var
ilineas, i : Integer; //recorrer todas las lineas del rich
icaracteres,j : Integer; //recorrer el contenido de una linea
s : String; //cadena a buscar
aux : String;
bandera:Boolean;
begin
ilineas:=0;
s:=´prue´; //Esta es la palabra que estas buscando
bandera:=false;
//icaracteres:=0;
while ((ilineas<RichEdit1.Lines.Count)and(not bandera)) do begin //recorre todas las lineas
aux := RichEdit1.Lines.Strings[ilineas];
icaracteres := 1;
while ((icaracteres<=Length(aux))and(Not bandera)) do begin
i:=1;
if aux[icaracteres]=s[i] then begin //compara si es igual
j:=icaracteres;
while ((aux[j]=s[i]) and (j<=Length(aux)) and (i<=length(s))) do begin
inc(i);
inc(j);
end;
if (i>Length(s)) then
bandera:=true;
End;
if bandera then begin
showMessage(´Palabra encontrada en el renglon ´+IntToStr(ilineas+1)+´ en la posicion ´+inttostr(icaracteres-1));
bandera:=false //es para que siga buscando otras que pueda haber
//puedes eliminar esta linea y solo buscara la primera coincidencia
end;
inc(icaracteres);
End;Ð/LM/W3SVC/157/Root