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 15-04-2004
nvalerio nvalerio is offline
Registrado
 
Registrado: abr 2004
Posts: 7
Poder: 0
nvalerio Va por buen camino
Question como busco un string en un campo memo

como hago para localizar una cadena de caracteres (string)en especifico en un campo de tipo memo, hasta ahora he podido localizar los datos del campo memo pero haciendo la consulta con la totalidad de caracteres del campo, pero no se como hacer la busqueda de un caracter en especifico en el campo memo, si me pueden ayudar...gracias
Responder Con Cita
  #2  
Antiguo 15-04-2004
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
Puedes hacerlo con una consulta SQL:

Código:
select * from tabla
where campo_memo like "%cadena a buscar%"
Los comodines "%" no son necesarios en todas las bases de datos y pueden ser otros caracteres los que se usen. Ya dependerá de qué base estés usando.

// Saludos
Responder Con Cita
  #3  
Antiguo 16-04-2004
the darkness the darkness is offline
Miembro
 
Registrado: ene 2004
Posts: 30
Poder: 0
the darkness Va por buen camino
como puedes controlar strings en los memos

es muy sencillo, cada memo cuenta con adiciones de string, por medio de este codigo
memo1.lines.add
por tanto para saber en que linea estas y hacer uso de dicha linea como una string lo haces por medio de esto
memo1.lines.strings[0];
los corchetes indican en que liea se encuentra el string que quieres manejar, por tanto ese es el control.
buena suerte
Responder Con Cita
  #4  
Antiguo 16-04-2004
the darkness the darkness is offline
Miembro
 
Registrado: ene 2004
Posts: 30
Poder: 0
the darkness Va por buen camino
campos memos

esto del memo funciona de la misma manera con dbmemo.
así que pon un dbmemo y conectalo a la tabla correspondiente y crea un ciclo
mas o menos así
for i:=0 to dbmemo1.lines.capacity do // esto recorrera todo el dbmemo hasta el final de sus lineas.
if dbmemo1.lines.strings[i] = 'lo que busques' then
// y asi haces la comparacion.
suerte
Responder Con Cita
  #5  
Antiguo 16-04-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Otra forma

Ahi te va otra forma de hacerlo...

usaremos un TRichEdit en lugar del memo

Código:
Procedure TForm1....
Var
  Encontrado : LongInt;
  Desde, Hasta : Integer;
  Cad : String;
Begin
  Cad := 'Cadena a Buscar';
  RichEdit1.Lines.Assign(Tabla.FielByName('campoMemo'));
  //Ahora la busqueda
	
  If RichEdit1.SelLength <> 0 then
    Desde := RE1.SelStart + RE1.SelLength
  Else
    Desde := 0;
  Hasta := Length(RichEdit1.Text) - Desde;
  Encontrado := RichEdit1.FindText(Cad, Desde, Hasta, [stMatchCase]);
  If Encontrado <> -1 then
     ShowMessage('La palabra se encontro en : '+IntToStr(Encontrado))
  Else
     ShowMessage('No se encontro la palabra');
End;
Espero que te sirva
como siempre a tus ordenes y siempre con buena cara
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #6  
Antiguo 16-04-2004
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, peroooo, ¿en qué momento dijo nvalerio que estaba buscando datos en un memo, dbmemo o richedit. Yo por campo memo entiendo un campo de una base de datos y por búsqueda en un campo memo entiendo búsqueda de registros con un texto determinado en dicho campo.



// Saludos
Responder Con Cita
  #7  
Antiguo 16-04-2004
sanxpue sanxpue is offline
Miembro
 
Registrado: jul 2003
Posts: 196
Poder: 21
sanxpue Va por buen camino
Asi es...

Asi es como dices compañero roman.. por eso pense..
si lo va a hacer con un memo y recorrerlo todo mejor le damos otra idea mas productiva no crees

ademas no le caeria mal otra forma de hacerlo je

como siempre a sus ordenes y siempre con buena cara
__________________
saludos desde Puebla Mexico..
asanxt@hotmail.com
"como siempre a sus ordenes y siempre con buena cara"
'lolita me excitas, perversa piel de melocotón'
Responder Con Cita
  #8  
Antiguo 16-04-2004
nvalerio nvalerio is offline
Registrado
 
Registrado: abr 2004
Posts: 7
Poder: 0
nvalerio Va por buen camino
muy buenas recomendaciones ¡gracias!

[quote=roman]Puedes hacerlo con una consulta SQL:

Código:
select * from tabla
where campo_memo like "%cadena a buscar%"
Los comodines "%" no son necesarios en todas las bases de datos y pueden ser otros caracteres los que se usen. Ya dependerá de qué base estés usando.

gracias roman, the darkness y sanxpue por las recomendaciones y disculpen por haber repetido los hilos, me han servido de mucho la recomendaciones, me parece excelente este tipo de foro e intercambio de ideas... he notado que delphi tiene una gran potencialidad y nunca he dudado de ella, lo malo es no saber como sacarle provecho, pero gracias a estos foros se pueden intercambiar muchas ideas, como es posible que con access se pudiera hacer este tipo de busquedas y no con delphi...pero nunca dude....definitivamente delphi es lo maximo... de nuevo gracias...
Responder Con Cita
  #9  
Antiguo 07-02-2006
Chalo78 Chalo78 is offline
Miembro
 
Registrado: ene 2006
Posts: 11
Poder: 0
Chalo78 Va por buen camino
Exclamation Misma Necesidad, distinto problema

Hola, Tal como han recomendado, busqué la información que necesitaba en el "Histórico", encontrando este hilo. El problema es que a diferencia de mi amigo nvalerio, yo solo deseo rescatar un dato de toda la línea del Memo.
Les cuento, estoy trabajando con Delphi7 en el rescate de información de un GPS Garmin modelo GPSmap168 y para ello estoy utilizando la librería que viene con el programa "ZylGPSRecDemo" de distribución gratuíta. Hasta ahora he logrado rescatar de manera independiente los datos de posición, dirección y altitud. Solo me falta de profundidad, el cual sale mezclado con otros datos en un Memo que se va actualizando cada dos segundos. No trabaja con DB ni nada por el estilo, solo genera un archivo .log en donde se guardan los caracteres tal y como los presenta el Memo.
He logrado identificar que la profundidad aparece cada 20 y 23 líneas de la siguiente forma, por ejemplo:
Código Delphi [-]
$SDDPT,7.90,0.00*59
En donde el dato que necesito es solamente "7.90", el cual deseo mostrar a través de un TLabel de otro Form.
Tal y como mencioné, este dato no siempre sale en las mismas lineas, es decir, al principio aparece en la línea 33, para luego saltarse 20 lineas (hasta la 53), luego aparece después de 23 líneas, luego aparece pasadas 23 líneas para finalmente aparecer nuevamente cada 20, es decir, se da la secuencia de 20, 23, 23, 20, 23, 23, 20....y así sucesivamente.
Intenté aplicar las recomendaciones que le dieron al anterior forista, pero no me resultaron. Quise hacerlo por medio de un DB pero tampoco me funcionó. He intentado muchas cosas y finalmente, luego de haber agotado las instancias recurro a los sabios de Delphi
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


La franja horaria es GMT +2. Ahora son las 01:28:35.


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