La Web del Programador: Comunidad de Programadores
 
    Pregunta:  5203 - SE PODRA PASAR UN STRING A CODIGO
Autor:  Marco G.V.
Hola necesito que me ayuden en lo siguiente:

Digitar formulas en algún campo (text) y que visual lo interprete como código
Eje:

Mystring = “( 2 * 4 ) + 2”
Text1 = Mystring

Pero muestra en la text
( 2 * 4 ) + 2

Y quiero que lo interprete:
Mystring = “( 2 * 4 ) + 2”
Text1 = Mystring

Y muestre el resultado 10

PD. Agradezco este espacio para nosotros....

  Respuesta:  FERRAN LASALA
Hola Marco:

Deberías intentar de declararlos como entero y ya está. la operacion la tienes que tener en un textbox de forma que pueda ser modificada si es lo que quieres.

dim MyString as String

dim i as integer

' cogemos el texto
Mystring= Text1.text ' Su ponemos que esto será el
' contenido "(2 * 4) + 2"

' le decimos a visual que sustituya los parentesis por espacios
replce = replace (Mystring , "(" , "")
replce = replace (Mystring , ")" , "")

' El resultado de la operacion lo tienes registrado en i
i = cInt(replce)

' Solo tienes que utilizar la variable "i" que tendrá el resultado 10

  Respuesta:  CARLOS FELIPE REYES CONTRERAS
SI ES FACTIBLE SIEMPRE Y CUANDO LA EXPRESIÓN A EVALUAR SEA UNA EXPRESIÓN ARITMÉTICA VÁLIDA PARA VISUALBASIC.

LO QUE DEBES HACER ES LO SIGUIENTE:

- ADICIONA EL CONTROL SCRIPTCONTROL

- SUPONGAMOS QUE EN Text1 TIENES LA EXPRESIÓN Y EN Text2 GUARDARÁS EL RESULTADO:

Text1 = ScripControl1.Eval(Trim(Text2))

Y LISTO

  Respuesta:  Jose G. Montalvo
Es un error de asignacion, si asigna una cedena de caractere, devuelve una cadena de caractes, pero si asigna una formula matematica devuelve la respuesta ej. Mystring = “( 2 * 4 ) + 2”
Text1 = Mystring (text1 = ( 2 * 4 ) + 2) pero si es Mystring = (( 2 * 4 ) + 2)
Text1 = Mystring (text1 = 10)

  Respuesta:  J RC
Si lo que quieres es realizar un cálculo y mostrar el resultado, lo mejor es que utilices una variable numérica, y luego mediante una conversión de tipos asignarla a la propiedad Text del textbox, no utilizar una cadena directamente.
Si lo que quieres es introducir una fórmula, y que el programa calcule el resultado, la cosa se complica mucho, ya que tienes que ir reconociendo léxicamente la fórmula, comprobando su sintaxis, e ir realizando los cálculos paso a paso, Generalmente para esto se utiliza una estructura de datos tipo Pila. Si este es tu caso, lo mejor es conseguir algún libro sobre analizadores léxicos y sintácticos, ya que el tema es bastante complicado.