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.
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
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
Que ego :xD
a simple vista, colocas un signo negativo después del parentesis y adios aplicación que te acabaste :-(
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!!!!
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.
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...
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. :-\
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.
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
Ya lo hice en el proyecto que lo queria implementar, ufff... que complicado se pone a veces el manejo de strings, se ve que anoche no me daba la cabeza por el sueño que tenia. Gracias a todos, lo que hice al final es combinar Instr, Mid y Replace en varias lineas de codigo.