FoxPro/Visual FoxPro - Comparacion de cadenas

 
Vista:

Comparacion de cadenas

Publicado por andy (3 intervenciones) el 08/03/2003 09:18:10
hola amigos quisiera me ayudaran en lo siguiente.

Tengo la siguiente cadena: "ayuda(x,y,z)"
tengo que recorrerla hasta encontrar el primer parentesis de modo que solo me quede la cadena "ayuda" esta la tengo que comparar con otra.

despues la cadena restante que seria en este caso "(y,y,z)" tengo que hacer lo siguiente:

comparar
x con un campo
y con otro campo
z con otro campo.

ejemplo nos dan la cadena "ayudame(x,y,z)"
comparar "ayuda" con "campo de la tabla "
y lo restante "(x,y,z)"
x con un campo
y con otro
z con otro

espero que me puedas ayudar pues es parte de un proyecto ya le he intentado de varias formas y no lo logro por favor ayudame.
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

RE:Comparacion de cadenas

Publicado por eduardo (151 intervenciones) el 08/03/2003 16:07:07
Hola!
aqui tienes unas ideas:
para buscar el parentesis..supongamos que c es la cadena con todo
x=1
do while substr(c,x,1)<>"("
x=x+1
enddo
*la pos x es donde está el parentesis.
*la cadena antes del parentesis es cadena1:
cadena1=substr(c,1,x-1)
*luego la x, y, z son:
x=substr(c,x+1,1)
y=substr(c,x+3,1)
y=substr(c,x+5,1)

*ahora haz las comparaciones con las variables respectivas

pruebalo espero te sirva!
hasta luego!
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

RE:Comparacion de cadenas

Publicado por andy (3 intervenciones) el 12/03/2003 04:53:51
MUCHAS GRACIAS POR TU AYUDA ME FUNCIONO MUY BIEN
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

Solucion

Publicado por Victor Preguntón (100 intervenciones) el 11/03/2003 23:08:40
segun to ejemplo yo haria lo siguiente: primero debo conocer donde aplicaras cortes al texto ej. ( , , ) son 4 caracteres y posterioemente los extraigo y realizo las comparaciones... fijate bien... suponiendo el siguiente texto: ESTETEXTO(HOLA,COMO,ESTAS)
recuerda que utilizaremos la funcion AT() que nos permitira conocer en que posicion se encuentra el caracter buscado para que de ahi podamos realizar los cortes:

TEXTO='ESTETEXTO(HOLA,COMO,ESTAS)'
corte1=at('(',TEXTO,1)
corte2=at(',',texto,1)
corte3=at(',',texto,2)
corte4=at(')'.texto,1)
**** ahora vamos a hacer los cortes...

resultado1=left(texto,corte1-1)
resultado2=subs(texto,corte1+1,corte2-corte1)
resultado3=subs(texto,corte2+1,corte3-corte2)
resultado4=subs(texto,corte3+1,corte4-corte3)

Espero que te haya quedado claro y tambien espero que este preciso mi ejemplo de lo cantrario realiza los ajuste que quedaron pendientes. Notificame si te funciono. Saludos desde Mexico, D.F.
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

Solucion

Publicado por Victor Preguntón (100 intervenciones) el 11/03/2003 23:08:46
segun to ejemplo yo haria lo siguiente: primero debo conocer donde aplicaras cortes al texto ej. ( , , ) son 4 caracteres y posterioemente los extraigo y realizo las comparaciones... fijate bien... suponiendo el siguiente texto: ESTETEXTO(HOLA,COMO,ESTAS)
recuerda que utilizaremos la funcion AT() que nos permitira conocer en que posicion se encuentra el caracter buscado para que de ahi podamos realizar los cortes:

TEXTO='ESTETEXTO(HOLA,COMO,ESTAS)'
corte1=at('(',TEXTO,1)
corte2=at(',',texto,1)
corte3=at(',',texto,2)
corte4=at(')'.texto,1)
**** ahora vamos a hacer los cortes...

resultado1=left(texto,corte1-1)
resultado2=subs(texto,corte1+1,corte2-corte1)
resultado3=subs(texto,corte2+1,corte3-corte2)
resultado4=subs(texto,corte3+1,corte4-corte3)

Espero que te haya quedado claro y tambien espero que este preciso mi ejemplo de lo cantrario realiza los ajuste que quedaron pendientes. Notificame si te funciono. Saludos desde Mexico, D.F.
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