Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
Red face Busqueda de texto

hola amigos de clubdelphi vengo a expresarles una duda que tengo ya que la verdad estoy aprendiendo mucho de este foro y gran ayuda de un amigo ,bueno vamos al grano lo que quiero hacer es una aplicación que busque textos que se le pondra en un edit y el texto sera buscado en un memo pero lo que me crea dificultad es que quiero que el edit solo sea una parte del texto a buscar ahora les dejare un ejemplo.

Ejemplo:


como dije quiero que el edit sea solo una parte de texto a seleccionar pero lo malo es quiero que 'file:' y'exe' sean como textos predeterminados de busqueda


Gracias
Espero que me hayan entendido eh echo lo mejor posible para q me entiendan gracias
Imágenes Adjuntas
Tipo de Archivo: jpg jpg.JPG (11,8 KB, 7 visitas)
Responder Con Cita
  #2  
Antiguo 27-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No estoy seguro de entender pero vamos a ver. Si quieres buscar lo que está en el edit dentro del memo, sólo tendrías que poner:

Código Delphi [-]
Start := Pos(Edit.Text, Memo.Text);
if Start > 0 then
begin
  Memo.SelStart := Start;
  Memo.SelLength := Length(Edit.Text);
end;

Pero si quieres buscar el texto del edit pero sólo si está con el texto predeterminado, puedes concatenar dicho texto al momento de buscar:


Código Delphi [-]
Start := Pos('file:' + Edit.Text + '.exe', Memo.Text);
if Start > 0 then
begin
  Memo.SelStart := Start + Length('file:');
  Memo.SelLength := Length(Edit.Text);
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 27-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
No estoy seguro de entender pero vamos a ver. Si quieres buscar lo que está en el edit dentro del memo, sólo tendrías que poner:

Código Delphi [-]
Start := Pos(Edit.Text, Memo.Text);
if Start > 0 then
begin
  Memo.SelStart := Start;
  Memo.SelLength := Length(Edit.Text);
end;

Pero si quieres buscar el texto del edit pero sólo si está con el texto predeterminado, puedes concatenar dicho texto al momento de buscar:


Código Delphi [-]
Start := Pos('file:' + Edit.Text + '.exe', Memo.Text);
if Start > 0 then
begin
  Memo.SelStart := Start + Length('file:');
  Memo.SelLength := Length(Edit.Text);
end;

// Saludos
gracias por la respuesta lo provare pero antes disculpame pero otra pregunta
como haria para agregar a otro memo el texto seleccionado por la busqueda
Responder Con Cita
  #4  
Antiguo 27-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Podrías agregarlo como una nueva línea:

Código Delphi [-]
OtroMemo.Lines.Add(Edit.Text);

// Saludos
Responder Con Cita
  #5  
Antiguo 27-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
roman disculpa pero el codigo q me enseñas no me soombrea todo lo q quiero solo me sombre lo q esta en el edit lo q yo quiero es sobrear todo incluyendo file: y .exe
Responder Con Cita
  #6  
Antiguo 27-07-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Gerson12, si lo que vas a introducir es la ruta completa, tendrias que modificar sólo al código que te expuso Román lo siguiente
Código Delphi [-]
Start := Pos('file:' + Edit.Text + '.exe', Memo.Text);
if Start > 0 then
begin
  Memo.SelStart := Start + Length('file:');
  Memo.SelLength := Length('File:'+Edit.Text+'.exe');
end;


En caso contrario te indico que es mejor que crees un tabla en memoria carges los datos y busques con un like en Sql.

Esper te sirva de algo la ayuda
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #7  
Antiguo 27-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Gerson12 Ver Mensaje
roman disculpa pero el codigo q me enseñas no me soombrea todo lo q quiero solo me sombre lo q esta en el edit lo q yo quiero es sobrear todo incluyendo file: y .exe
Pues es que así lo tienes en la imagen que pusiste Si quieres sombrear todo entonces así:

Código Delphi [-]
Start := Pos('file:' + Edit.Text + '.exe', Memo.Text);
if Start > 0 then
begin
  Memo.SelStart := Start;
  Memo.SelLength := Length('file:' + Edit.Text + '.exe');
end;

// Saludos
Responder Con Cita
  #8  
Antiguo 28-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Pues es que así lo tienes en la imagen que pusiste Si quieres sombrear todo entonces así:

Código Delphi [-]
Start := Pos('file:' + Edit.Text + '.exe', Memo.Text);
if Start > 0 then
begin
  Memo.SelStart := Start;
  Memo.SelLength := Length('file:' + Edit.Text + '.exe');
end;

// Saludos
bueno gracias por sus respuesta pero como les dije anterior mente quiero q seleccione todo no solo una parte les dejo mi codigo
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
hotkey:integer;
begin
hotkey:=Pos('https://www'+Edit1.Text+'.com.pe',memo1.Text);
if hotkey>0 then
 Memo1.SelStart := hotkey;
  Memo1.SelLength := Length('https://www'+Edit1.Text+'.com.pe');
  Memo1.SetFocus;
end;
end.
else
begin
  ShowMessage ('no se encontro nada');
Responder Con Cita
  #9  
Antiguo 28-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gerson12.

A ver si entendí lo que buscas...

Supongamos que en Edit tenemos el texto:
Cita:
Un_Nombre_De_Pagina
En el Memo el siguiente texto:
Cita:
...
bla, bla, bla ...
bla, bla, ... https://www.Un_Nombre_De_Pagina.com.pe , bla, ..., etc
bla,bla,bla
...
Y queres que quede seleccionada la cadena "https://www.Un_Nombre_De_Pagina.com.pe".

Si no me equivoque, creo que podrías hacer:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  pd, ph: Integer;
begin
  pd:= Pos('https://www.' + Edit1.Text + '.com.pe', Memo1.Text);
  if pd > 0 then
  begin
    ph:= pd;
    Memo1.SelStart:= ph-1;
    while not(Memo1.Text[ph] in [#13,' ']) and (ph < Length(Memo1.Text)) do
      inc(ph);
    Memo1.SelLength:= ph - pd;
    Memo1.SetFocus;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-07-2012 a las 09:13:33.
Responder Con Cita
  #10  
Antiguo 28-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
hola gracias por responder pero el problema q tengo es q este mira en la imagen

me selecciona la pagina google y todo pero tambien selecciona otra partes mas eso es lo q yo no quiero
Pd: quiero q esta accion se haga varias veces para busque las paginas y las agrege a un memo
Responder Con Cita
  #11  
Antiguo 28-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Tenes razón... entonces proba de este modo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  p: Integer;
begin
  p:= Pos('https://www.' + Edit1.Text + '.com.pe', Memo1.Text);
  if p > 0 then
  begin
    Memo1.SelStart:= p - 1;
    Memo1.SelLength:= Length('https://www.' + Edit1.Text + '.com.pe');
    Memo1.SetFocus;
  end;
end;
Pero es claro que a menos que utilices variables en su lugar, siempre estarás limitado a buscar cadenas con el contenido 'https://www.' y '.com.pe'.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-07-2012 a las 09:19:52.
Responder Con Cita
  #12  
Antiguo 28-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
gracias eficsa me salvastes era y disculpa me pudrieses decir como puedo hacer para q no solo seleccione a 1 sino a todos los textos buscados en este caso https.//www.google.com.pe en este caso pondre y paginas iguales a https.//www.google.com.pe y quiero q me seleccione todas y esas paginas me las agrege a un memo si no es mucha molesta me seria de mucha ayuda tu opinion gracias
Pd: a pero estoy usando variables en el codigo o a q te refieres con tu recomendacion:
Cita:
Pero es claro que a menos que utilices variables en su lugar, siempre estarás limitado a buscar cadenas con el contenido 'https://www.' y '.com.pe'.

Última edición por Gerson12 fecha: 28-07-2012 a las 15:28:35.
Responder Con Cita
  #13  
Antiguo 28-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gerson12.

Cita:
Pd: a pero estoy usando variables en el codigo o a q te refieres con tu recomendacion:
Un ejemplo:
Código Delphi [-]
procedure TForm1.SeleccionarTexto(const Prefijo, Texto, Sufijo: string);
var
  p: Integer;
begin
  p:= Pos(Prefijo + Texto + Sufijo, Memo1.Text);
  if p > 0 then
  begin
    Memo1.SelStart:= p - 1;
    Memo1.SelLength:= Length(Prefijo + Texto + Sufijo);
    Memo1.SetFocus;
  end;
end;

Llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  SeleccionarTexto('https://www.', Edit1.Text, '.com.pe');
end;
De ese modo si deseas buscar 'www.', '.com', '.com.es', etc, el procedimiento funcionará igual.

Saludos.

------------------------
Edito: Te pongo otro ejemplo que creo, deja mas en claro la flexibilidad de este modo:
Código Delphi [-]
 
  SeleccionarTexto(edPrefijo.Text, edTexto.Text, edSufijo.Text);
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 28-07-2012 a las 20:15:01.
Responder Con Cita
  #14  
Antiguo 29-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
ah te referias a eso gracias creia q era otra cosa ^^ porfa ayudame en esta ultima duda porfa
me pudrieses decir como puedo hacer para q no solo seleccione a 1 sino a todos los textos buscados en este caso https.//www.google.com.pe en este caso pondre y paginas iguales a https.//www.google.com.pe y quiero q me seleccione todas y esas paginas me las agrege a un memo
Responder Con Cita
  #15  
Antiguo 29-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gerson12.

Ya había leido tu inquietud en el mensaje #12, pero no respondí a ese punto, por que al menos a mi, no se me ocurre como realizar múltiples selecciones de texto en un TMemo del modo que venimos tratando.

Tal vez algún otro compañero conozca o se le ocurra la manera de lograrlo y nos eche un poco de luz. Lamento no poder ayudarte en eso...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #16  
Antiguo 29-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Gerson12.

Ya había leido tu inquietud en el mensaje #12, pero no respondí a ese punto, por que al menos a mi, no se me ocurre como realizar múltiples selecciones de texto en un TMemo del modo que venimos tratando.

Tal vez algún otro compañero conozca o se le ocurra la manera de lograrlo y nos eche un poco de luz. Lamento no poder ayudarte en eso...

Saludos.
q lastima gracias entonces seguire buscando en internet algo q me pueda ayudar y gracias y disculpa esta es mi ultima inquietud por q pones el -1 en este codigo
Código Delphi [-]
 memo1.SelStart:=f-1;
Gracias ^^
Responder Con Cita
  #17  
Antiguo 29-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
por q pones el -1 en este codigo
Hola Gerson12.

Por que la función Pos devuelve la posición del primer caracter de un string comenzando por la posición 1, pero la propiedad SelStart determina el primer caracter seleccionado a partir de la posición 0.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #18  
Antiguo 29-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
gracias ^^ les agradesco mucho roman,eficsa,[José Luis Garcí] gracias a todos ^^
Responder Con Cita
  #19  
Antiguo 31-07-2012
Gerson12 Gerson12 is offline
Miembro
NULL
 
Registrado: abr 2012
Ubicación: Peru-Lima
Posts: 138
Poder: 13
Gerson12 Va por buen camino
Lightbulb Como Obtener cierto texto de un memo

hola amigos quisiera hacerles una pregunta es que segun eh visto por internet se puede obtener un texto de un memo supongamos que en el el texto esta escrito esto:
Código:
gfdg
df
gdf
g
dfgdfgdfg
holaamigosclubdelphi
dsf
sdfsdfsdfsdfsdf
sdfdsholaamigosclubdelphi
como veran yo quiero que el texto que dice'holaamigosclubdelphi' eso me obtenga y salga en otro memo
es posible hacer eso ¿?


Estuve averiguando y segun parece se tiene que usar settext o gettex pero realmente estoy confundido
__________________
Gracias a todos por apoyarme ^^
Responder Con Cita
  #20  
Antiguo 31-07-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Bueno, realmente esto ya lo preguntaste y se te respondió en el otro hilo. Detente a estudiar un poco las respuestas que te dimos para que aprendas a aplicar la técnica en este y otros casos.

//Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
busqueda de un Texto dentro de un .dfm sinalocarlos Varios 3 23-06-2007 04:33:30
Búsqueda de texto en TMemo ixMike Varios 0 09-10-2006 19:24:51
Busqueda en un archivo texto Ing_Fajardo Varios 2 15-04-2005 04:54:21
Busqueda de texto en Blob Sergio J. SQL 2 29-09-2004 15:38:05
Busqueda de texto en MySQL vivim82 MySQL 6 01-06-2004 16:57:21


La franja horaria es GMT +2. Ahora son las 05:39:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi