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 |