Evaluador de Expresiones

10/05/2005 - 15:42 por Joaquin Jurado | Informe spam
Hola Amigos:

Soy un programador de Visual Foxpro desde la versión 2.5
para DOS hasta la versión 9.0
y desde hace un año estoy estudiando la plataforma .NET, y
le he dado fuertemente a C# y
desde hace dos semanas estoy incursionando con J#.

Mi inquietud es referente al manejo de macrosustitución
que maneja Foxpro en todas sus versiones, para
aclarar esto les voy a dar un ejemplo:

1) Inicializo dos variables de tipo caracter.
VAR1 = "10"
VAR2 = "30"

2) Inicializo una variable de tipo caracter con el signo
operador de multiplicación
OPERADOR = "*"

3) Creo otra variable con la concatenaciónde las variables
anteriores.
CMD = VAR1+OPERADOR+VAR2 --> (cmd = "10*30")

4) Evaluo el valor de la variable CMD, y el resultado lo
dejo en la variable resultado
RESULTADO = EVALUATE(COMANDO)

5) La variable resultado queda con el valor de la formula
almacenada en la variable CMD.
RESULTADO = 300

RESUMEN:

VAR1 = "10"
VAR2 = "30"
OPERADOR = "*"
CMD = VAR1+OPERADOR+VAR2
RESULTADO = EVALUATE(COMANDO)

He aquí otro ejemplo:
cmd = "(2+5)*5/2"
?EVALUATE(CMD) --> Aqui el resultado es 17.50

Como pueden apreciar EVALUATE es una función poderosa que
me permite evaluar cualquier formula, inclusive llamar
a otras funciones de VFP e inclusive a funciones creadas
por uno mismo, desde luego teniendo cuidado con los valores
resultado de cada llamado a función.

Ahora mi pregunta, como puede hacer lo anterior en la
plataforma .NET, especialmente con C#, directamente
sin necesidad de crear una clase de evaluador de
expresiones (Considero que no vale la pena reinventar la
rueda).


Gracias a todos por su ayuda.


Cordialmente,


Joaquín Jurado

Preguntas similare

Leer las respuestas

#1 Alfredo Novoa
10/05/2005 - 16:53 | Informe spam
On Tue, 10 May 2005 06:42:59 -0700, "Joaquin Jurado"
wrote:

Ahora mi pregunta, como puede hacer lo anterior en la
plataforma .NET, especialmente con C#, directamente
sin necesidad de crear una clase de evaluador de
expresiones (Considero que no vale la pena reinventar la
rueda).



Pues usando un evaluador de expresiones creado por otro :)

Por ejemplo aquí tienes algunos:

http://www.codeproject.com/csharp/runtime_eval.asp
http://www.c-sharpcorner.com/Code/2...luator.asp
http://www.csharphelp.com/archives2...ve289.html



Saludos
Respuesta Responder a este mensaje
#2 Tristan
10/05/2005 - 23:45 | Informe spam
Si quieres un evaluador de expresiones, y mucho más, de código MUY sencillo,
puesto que casi todo el trabajo lo ha hecho MS en el framework, puede
dejarlo por aquí.

Evalúa cualquier expresión C#, pero además permite crear y ejecutar sobre la
marcha aplicaciones completas C#.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 Octavio Hernandez
14/05/2005 - 16:47 | Informe spam
En uno de los primeros ejemploares de DotNetMania, José M. Alarcón publicó
un evaluador, puedes obtener el código aquí:

http://www.dotnetmania.com/Articulo...vuelo.html

Slds - Octavio

"Joaquin Jurado" escribió en el mensaje
news:1a6d01c55566$2dd44b80$
Hola Amigos:

Soy un programador de Visual Foxpro desde la versión 2.5
para DOS hasta la versión 9.0
y desde hace un año estoy estudiando la plataforma .NET, y
le he dado fuertemente a C# y
desde hace dos semanas estoy incursionando con J#.

Mi inquietud es referente al manejo de macrosustitución
que maneja Foxpro en todas sus versiones, para
aclarar esto les voy a dar un ejemplo:

1) Inicializo dos variables de tipo caracter.
VAR1 = "10"
VAR2 = "30"

2) Inicializo una variable de tipo caracter con el signo
operador de multiplicación
OPERADOR = "*"

3) Creo otra variable con la concatenaciónde las variables
anteriores.
CMD = VAR1+OPERADOR+VAR2 --> (cmd = "10*30")

4) Evaluo el valor de la variable CMD, y el resultado lo
dejo en la variable resultado
RESULTADO = EVALUATE(COMANDO)

5) La variable resultado queda con el valor de la formula
almacenada en la variable CMD.
RESULTADO = 300

RESUMEN:

VAR1 = "10"
VAR2 = "30"
OPERADOR = "*"
CMD = VAR1+OPERADOR+VAR2
RESULTADO = EVALUATE(COMANDO)

He aquí otro ejemplo:
cmd = "(2+5)*5/2"
?EVALUATE(CMD) --> Aqui el resultado es 17.50

Como pueden apreciar EVALUATE es una función poderosa que
me permite evaluar cualquier formula, inclusive llamar
a otras funciones de VFP e inclusive a funciones creadas
por uno mismo, desde luego teniendo cuidado con los valores
resultado de cada llamado a función.

Ahora mi pregunta, como puede hacer lo anterior en la
plataforma .NET, especialmente con C#, directamente
sin necesidad de crear una clase de evaluador de
expresiones (Considero que no vale la pena reinventar la
rueda).


Gracias a todos por su ayuda.


Cordialmente,


Joaquín Jurado
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida