Busqueda de cadenas

Lukas
06 de Diciembre del 2002
Necesito que me ayuden a buscar una cadena de caracteres en un campo memo o caracter.

Jes?
06 de Diciembre del 2002
Aquí te mando una rutina que busca una cadena específica en un campo memo, recibe como parámetro la cadena a buscar.

LPARAMETERS cValorBuscado

*Abrir tabla
*USE TABLA
lValorEncontrado = .F.
nLineasMemo = MEMLINES(cmemo)
FOR nLinea = 1 TO nLineasMemo
IF cValorBuscado$MLINE(CMEMO,nLinea)
lValorEncontrado = .T.
EXIT
ENDIF
NEXT
IF lValorEncontrado
=MESSAGEBOX("El valor se ha encontrado en el"+;
"campo memo "+CHR(13)+;
"cmemo de la tabla ...!"+CHR(13)+;
"en la línea "+ALLTRIM(STR(nLinea)),64,"Aviso")
RETURN .T.
ENDIF

Lukas
06 de Diciembre del 2002
Muchas Gracias Jesus, voy a poner en marcha esta rutina y espero que funcione bien.

Lukas

Jes?
06 de Diciembre del 2002
Aquí te mando una rutina que busca una cadena específica en un campo memo, recibe como parámetro la cadena a buscar.

Y para buscar una cadena en un campo caracter utiliza el siguiente comando

IF cValorBuscado$cCampoCaracter
=MESSAGEBOX("cadena encontrada ...!")
ENDIF

&&&& Aquí tienes la rutina

LPARAMETERS cValorBuscado

* La tabla se llama TABLA y el campo memo se llama
* cmemo
*Abrir tabla

USE TABLA
lValorEncontrado = .F.
nLineasMemo = MEMLINES(cmemo)
SELECT TABLA
FOR nLinea = 1 TO nLineasMemo
IF cValorBuscado$MLINE(CMEMO,nLinea)
lValorEncontrado = .T.
EXIT
ENDIF
NEXT
IF lValorEncontrado
=MESSAGEBOX("El valor se ha encontrado en el"+;
"campo memo "+CHR(13)+;
"cmemo de la tabla ...!"+CHR(13)+;
"en la línea "+;
ALLTRIM(STR(nLinea)),64,"Aviso")
RETURN .T.
ENDIF
NOTA: Esta búsqueda la realiza en el registro actual, si quieres buscar en todos los registros le agregas un SCAN y listo.

Suerte, Ojalá te sirva.