?Podr?an ayudarme? Necesito saber c?mo poder escribir una ecuaci?n desde un textbox y que la reconozca como tal, es decir por ejemplo:
Quiero en un textbox de un formulario escribir:
x^2 + 2*x +1
y eso asignarlo para calcular una f(x) desde el textbox, lo que no s? es como hacer que el valor sea calculado y no me ponga "x^2 + 2*x +1"
Gracias
EggHeadCafe - Software Developer Portal of Choice
How to make your Web Site More Googly
http://www.eggheadcafe.com/tutorials/aspnet/ed2489cf-efd0-46b9-a20b-e3ffb0363ac0/how-to-make-your-web-site.aspx
Saludos
"Luis Najera" escribi� en el mensaje de
noticias:2009117038...@hotmail.com...
Hay un par de formas de conseguirlo:
La primera es rodear la expresi�n que te teclean con una clase y una
funci�n, para dar un fuente completo y coherente en C# (o en VB.Net), y
luego usar la clase CSharpCodeProvider para compilarlo. No hace falta
enviarlo a un archivo, el provider acepta a trav�s del CompilerParemeters
una opci�n "GenerateInMemory" que te lo hace todo directamente en memoria.
Una vez compilado, se utiliza Reflection para invocar la funci�n que has
compilado, pas�ndole los valores de x y recuperando el resultado.
La otra opci�n es la de escribir un analizador sint�ctico que analice la
expresi�n y vaya interpret�ndola, o bien incluso que la compile en memoria
usando ILGenerator.Emit para crear un m�todo din�mico.
Tanto una opci�n como la otra requieren escribir bastante c�digo, no es
una simple instrucci�n en C#. En la revista dotNetMania
(www.dotnetmania.com) del pasado mes de Junio/2009 publiqu� un art�culo
donde explicaba con ejemplos estas dos formas de aceptar y procesar
expresiones.
Si te sirve, en visual Basic 6.0 biene un control .OCX llamado
MicrosoftScriptControl 1.0. Este es un verdadero compilador de tiempo de
ejecuci�n. La compatibilidad con Visual Basic 2008 es otro tema. No s� si es
compatible.
Yo utilice este control para desarrollar un Sistema de Sueldos y estoy
realmente satisfecho.
Suerte
--
Ing. en Sistemas
Renee A. Ferreira
<Luis Najera> escribi� en el mensaje
news:2009117038...@hotmail.com...