Buscar y reemplazar cadenas, necesito ayuda

Iniciado por katanaia, 4 Septiembre 2008, 02:52 AM

0 Miembros y 2 Visitantes están viendo este tema.

katanaia

Necesito algun codigo sencillo de ejemplo. Lo que quiero hacer es lo siguiente:

Teniendo una cadena "El resultado es (4+1), y el otro es (6+2)" lo que quiero es convertirla en "El resultado es 5, y el otro es 8"

O sea, quiero una rutina que me busque y sume lo que hay entre parentesis y luego me de la nueva cadena.

PD: Ya se que el ejemplo es tonto, no lo voy a usar para eso, es para entender el funcionamiento y aplicarlo en otro codigo.

yerson

#1
Mmm haber este  algorimto
mientras no sea fin de cadena buscar
preguntar si es un parentesis, si es un parentesis entonces preguntar si el que sigue es un numero, si el caracter que sigue es un operador convertir en numero y guardarlo en una variable si el q sigue cierra el parentesis repetir todo de nuevo...xD!!! jajaj estaba casi dormido pero asi es la idea

Kerber0

#2

Dim i, j As Integer
Dim cadena, cadR, sI, sJ As String

cadena = "El resultado es (4+1), y el otro es (6+2)"

i = InStr(cadena, "(") + 1
sI = Mid(cadena, i, 1) 'aca tenes el 4

cadR = Mid(cadena, i + 1, Len(cadena)) ' mi nueva cadena
j = InStr(cadR, ")") - 1

sJ = Mid(cadR, j, 1) 'aca tenes el 1

MsgBox Int(sI) + Int(sJ) 'la suma


Ahi ya tienes la suma de los primeros numeros, si siguies haciendo lo mismo tendras la suma del segundo numero. Informate sobre mid , instr, replace, split, etc te van a ayudar mucho.

Saludos

cassiani

Que ego  :xD

a simple vista, colocas un signo negativo después del parentesis y adios aplicación que te acabaste  :-(

Kerber0

Cita de: cΔssiΔnі en  4 Septiembre 2008, 07:00 AM
Que ego  :xD

a simple vista, colocas un signo negativo después del parentesis y adios aplicación que te acabaste  :-(
Exacto pasa casi siempre cuando cambias por ejemplo en una variable alguna letra la aplicacion seguro que no va a funcionar. solamente por una letra!
Q cosa!!!!

katanaia

Buen intento, pero como dice cΔssiΔnі ... si le agregas un signo menos luego del parentesis ya no funciona. Ademas te falta todavia la otra suma y poner la cadena como estaba antes solo que reemplazando con los nuevos valores.

Kerber0

katania, fue una sugerencia de como se podria hacer. El codigo es muy sencillo y funciona para tu ejemplo(si funciona si). Tu trabajo seria adaptarlo, no el mio.
En todo programa si te equivocas en un caracter podria resultar desastrozo todavia no entiendo por que aclaran eso. Por dios...


katanaia

No te enfades Kerber0, se agradece tu aporte. Tu ejemplo funciona pero solo parcialmente, todavia falta lo demas que creeme que si supiera como hacerlo o lo encontrase facilmente en google no andaria preguntando por el foro. :-\

Kerber0

Cita de: katanaia en  4 Septiembre 2008, 08:31 AM
No te enfades Kerber0, se agradece tu aporte. Tu ejemplo funciona pero solo parcialmente, todavia falta lo demas que creeme que si supiera como hacerlo o lo encontrase facilmente en google no andaria preguntando por el foro. :-\
Perdon pero no me enfado katania, si necesitas mayor ayuda enviame el cod. fte en un pm que trato de resolverlo completo.

cobein

Supongo que lo que queres es un evaluador de expresiones o una variacion del mismo, aca te dejo un ejemplo que te puede servir de guia.

http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=21856&lngWId=1
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.