FoxPro/Visual FoxPro - Buscar cadena dentro de otra cadena

   
Vista:

Buscar cadena dentro de otra cadena

Publicado por Diana (4 intervenciones) el 31/07/2013 00:22:30
Cómo hago para buscar una cadena dentro de otra cadena más grande?
por ejemplo:
campo1="456"
campo2="CAS-20356-OP456"

Campo1 está contenido en campo2 pero para evitar que se confunda con el resto de la cadena debo buscar OP456.
Alguien puede darme una mano?
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

Buscar cadena dentro de otra cadena

Publicado por Fidel (558 intervenciones) el 31/07/2013 00:39:26
campo1="456"
campo2="CAS-20356-OP456"

nAt= AT( CAMPO1 , CAMPO2) && primera aparición
IF nat#0
Messagebox("Cadena incluida")
else
Messagebox("No incluida")
endif

nAt= AT( CAMPO1 , CAMPO2) && última aparición
IF nat#0
Messagebox("Cadena incluida")
else
Messagebox("No incluida")
endif

Si "OP" es un prefijo constante, puedes hacer:
nat= AT("OP"+CAMPO1 , CAMPO2)

Alternativamente, si tienes separadores fijos, y la cadena a encontrar está en el 3er grupo:
campo1="456"
campo2="CAS-20356-OP456"
nl=Alines(gaString,campo2,1,"-")
nat=AT(campo1 , gaString[3])
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

Buscar cadena dentro de otra cadena

Publicado por Diana (4 intervenciones) el 31/07/2013 00:54:51
Mil perdones, olvidé mencionar que los campos pertenecen a tablas diferentes, el campo1 y campo2 que puse eran ejemplos solamente.
Y sí, el OP es constante antes del número qeu quiero buscar.
Gracias.
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

Buscar cadena dentro de otra cadena

Publicado por Fidel (558 intervenciones) el 31/07/2013 01:57:57
Sería cuestión de calificar.
Si las tablas tienen el puntero en el lugar de la comparación:
nat = AT("OP"+alltrim(tabla1.campo1) , tabla2.campo2)

Pero, si necesitamos buscar un o más registros dentro de la tabla2 que tengan la coincidencia:

1
2
3
4
5
lcBusca = [%]+"OP"+ALLTRIM(TABLA1.CAMPO1)+[%]
SELECT * FROM TABLA2 WHERE Campo2 LIKE lcbusca INTO Cursor cuFounds
SELECT cuFounds
browse
USE
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