como buscar una palabra de un campo memo

731 views
Skip to first unread message

Mary

unread,
Apr 2, 2014, 6:53:29 PM4/2/14
to publice...@googlegroups.com
resulta que nostros escribimos en campo memo ejemplo: la solicitud anexa es 4525la traer copia de cedula y documentos originales

quiero buscar 4525la

gracias

francisco prieto

unread,
Apr 2, 2014, 8:22:45 PM4/2/14
to publice...@googlegroups.com
Hay varias formas para eso Mary...

usar like  de consulta sql o el $...


Si el campo memo esta  contenido en un richtextbox... ademas se puede marcar todas las coinicidencias posibles....

Con esta funcion podes hacerlo...

LPARAMETERS cTexto
LOCAL lnPosSelIni,lnPosSelLong,lnLargo,lnPosCar,lnCoincide,lnPrimerPos
* Esta otra copción es para resaltar y colorear las coincidencias  
* Reestablece el color negro por si habia frases resaltadas  
Thisform.ResetColor()
  
*Guarda la posición y la longitud del texto que está seleccionado  
lnPosSelIni=ThisForm.oleMemo.SelStart  
lnPosSelLong=ThisForm.oleMemo.SelLength  

*Guarda la longitud del texto a buscar  
lnLargo=Len(cTexto)  
  
*Busca con Find la cadena. En la variable Guardamos la posición donde se encontró  
lnPosCar=ThisForm.oleMemo.Find(cTexto)  
lnCoincide=0  
DO While lnPosCar > 0  
lnCoincide=lnCoincide+1  
IF lnCoincide=1
lnPrimerPos=lnPosCar
ENDIF 
              
With ThisForm.oleMemo
*Asignamos la variable anterior a la propiedad SelStart del RichTextBox  
.SelStart = lnPosCar
  
*Establecemos en SelLength el tamaño de la cadena nuevamente  
.SelLength = lnLargo
  
*Esto le asigna el color de resalte que aplicará al texto encontrado en el Richtextbox  
.SelColor = RGB(255,0,0)  
  
*Ejecuta nuevamente el método Find hasta el final, es decir hasta que lnPosCar = 0  
lnPosCar=ThisForm.oleMemo.Find(cTexto,(lnPosCar+lnLargo))  
ENDWITH   
IF LASTKEY()=-2
EXIT 
ENDIF 
ENDDO 
  
* Seteamos las propiedades SelStart y Sellength  
IF lnCoincide=0
ThisForm.oleMemo.SelStart = lnPosSelIni  
ELSE
ThisForm.oleMemo.SelStart = lnPrimerPos  
ENDIF 
ThisForm.oleMemo.SelLength = lnPosSelLong  
  
* Retorna las veces que se encontró la cadena en el Richtextbox  
RETURN (lnCoincide)

Saludos,

Pancho
Córdoba


mapner

unread,
Apr 3, 2014, 7:34:56 AM4/3/14
to publice...@googlegroups.com
Puedes usar la función ATLINE()

Mira el siguiente Link:
http://msdn.microsoft.com/es-es/library/cc484452(v=vs.71).aspx

Saludos

Reply all
Reply to author
Forward
0 new messages