Delphi - busqueda de cadenas

 
Vista:

busqueda de cadenas

Publicado por el novato (28 intervenciones) el 28/05/2005 01:00:36
Hola amigos necesito con bastante urgencia la forma de por ejemplo tengo un edit llamado Edt__entre_frase y otro llamado edt_inserte_cadena_a_buscar y un boton llamado buscar ahora quiero que insertada una frase en el edit correspondiente(Edt__entre_frase) y tecleado en el otro edit una palabra me busque si esa palabra esta dentro de la frase y cuantas veces se repite la misma el problema es como lo hago?
POR FAVOR AMIGOS QUE NO SEA CON UNA FUNCION YA
TENGO UNA FORMA DE HACERLO CON UNA FUNCION PERO NECESITO UN METODO MAS FACIL SIN FUNCIONES

saludos a todos
gracias de antemano
por favor ayudenme en mi gran problema
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:busqueda de cadenas

Publicado por Kwerty (112 intervenciones) el 28/05/2005 12:33:33
TFindDialog?
Está pensado para Memos y así, pero imagino que se puede adaptar a un Edit.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:busqueda de cadenas

Publicado por BigLuis (713 intervenciones) el 28/05/2005 13:05:48
No se que puede haber mejor que una funcion que "funcione" pero, en fin, mira a ver si te puede valer este metodo de TFindDialog.Esta implementado sobre un DBRichEdit para porder buscar en un campo Memo de un BD pero se puede adaptar a cualquier contenedor de texto (TEdit eyc)
procedure TFormPrincipal.FindDialog1Find(Sender: TObject);
var
FoundPos,InitPos:Integer;
begin
InitPos:=DbRichEdit1.Selstart+DbRichEdit1.Sellength;
FoundPos:=Pos(FindDialog1.FindText,copy(DbRichEdit1.Text,InitPos+1,
Length(DbRichEdit1.Text)-InitPos));
if FoundPos>0 then
begin
DbRichEdit1.SetFocus;
DbRichEdit1.Selstart:=InitPos+FoundPos-1;
DbRichEdit1.Sellength:=Length(FindDialog1.FindText);
//HacerLoqueQuieras;
end
else
begin
MessageDLG('Texto no encontrado',mtinformation,[mbOK],0);
end;
end;
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:busqueda de cadenas

Publicado por Virum (484 intervenciones) el 29/05/2005 14:14:49
Hola:

Más fácil que algo que ya tienes hecho y funciona no hay nada.

Otra cosa es si te funciona pero quieres acelerarlo u otra cuestión que no especificas.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:busqueda de cadenas

Publicado por el novato (28 intervenciones) el 30/05/2005 00:17:37
si amigos lo se pero se que hay una forma utilizando length,pos y tambien funciona pues mi profesor lo tiene asi, el quiere que yo investigue como hacerlo sin funciones

SAludos
a
todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:busqueda de cadenas

Publicado por Diego Romero (636 intervenciones) el 30/05/2005 01:45:14
Pues escribe tu propia implementación de Length() y Pos().
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:busqueda de cadenas

Publicado por Delfino (1216 intervenciones) el 31/05/2005 13:19:23
Abre la unidad StrUtils y veras cantidad de funciones para tratar strings; para mi la mejor y mas potente es SearchBuf..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:busqueda de cadenas

Publicado por Dr Juzam (821 intervenciones) el 30/05/2005 03:41:32
Pues con Pos se me ocurre esto. No llego a entender lo de no usar funciones. Espero que te ayude:

var
TamTotal, i, Contador: Integer;
begin
TamTotal:=Length (Edit2.Text)-1; //Edit2 es donde buscamos
i:=1;
Contador:=0;
while i<=TamTotal do begin
if Pos (UpperCase(Edit1.Text), UpperCase(Copy (Edit2.Text, i, Length (Edit1.Text))))>0 then
inc (Contador);
inc (i);
end;
ShowMessage (IntToStr(Contador));
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar