Foros del Web » Programación para mayores de 30 ;) » .NET »

Evaluar string en C#

Estas en el tema de Evaluar string en C# en el foro de .NET en Foros del Web. Hola! tengo un dilema.... Existe alguna manera de hacer con C# lo que hace la la funcion eval() en javascript? X ejemplo.... en javascript si ...
  #1 (permalink)  
Antiguo 12/01/2007, 11:39
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 7 meses
Puntos: 0
Evaluar string en C#

Hola! tengo un dilema....
Existe alguna manera de hacer con C# lo que hace la la funcion eval() en javascript?
X ejemplo.... en javascript si haces eval("2+5*6") te devuelve 32.

Ya hize una vez un interpretador de expresiones matematicas trabajando con strings. Conseguí implementar las operaciones basicas (sumar, restar, multplicar, dividir, potencia), que operara segun la prioridad de operaciones, y tambien k trabajase con parentesis.
Pero usando este metodo se hace muy dificil implementar otras funciones como cos() y sin() x ejemplo.

En canvio con eval() seria muy facil.... alguien escribe en un textbox "2*8-9/cos(105)". Substituiria trozos del string para k kedara asi: "2*8-9/Math.cos(105)" y luego se le hace el eval() y ya stá...

No hay algo parecido a eval() en c#?
  #2 (permalink)  
Antiguo 12/01/2007, 13:10
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Evaluar string en C#

No existe, pero talvez puedes sacar algo más rápido del siguiente plugin para vs.net

http://www.secretgeek.net/download_execinline.asp
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 12/01/2007, 13:33
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Evaluar string en C#

Gracias x responder ^^
Pero veo k solo es un plugin para Visual Studio... Ejecuta solo el trozo de codigo k hayas seleccionao con el raton.

Yo lo que pregunto es para aplicarlo a un programa. Que se tenga que escribir algo en un textbox para posteriormente evaluarlo. Para calcular expresiones matematicas x ejemplo.
  #4 (permalink)  
Antiguo 12/01/2007, 13:39
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Evaluar string en C#

pues, mira, se me ocurre esto:

A tu funcion que tienes le puedes colocar unas lineas de codigo que cada vez que encuentre las palabras "cos""sin"... las sustituya por Math.Cos, Math.Sin..., haber si con estas lineas me explico mejor, y acuerdate que tienes que tener en cuenta las mayusculas por las palabras reservadas:

cadena de entrada = "2*8-9/cos(105)"

txtCantidad.Text.Replace("cos", "Math.Cos");

cadena de salida = "2*8-9/Math.Cos(105)"
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #5 (permalink)  
Antiguo 12/01/2007, 13:45
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Evaluar string en C#

erick_arcini, si eso ya lo he dixo yo mismo al principio XD
el problema k tengo no es ese :P

El problema es "evaluar" ese nuevo string con los Math.cos & cia y que devuelva un resultado.
Saludos ^^
  #6 (permalink)  
Antiguo 12/01/2007, 13:50
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Evaluar string en C#

No sé que tipo de expresiones quieras evaluar, pero talvez te sirva esta vez:
http://www.codeproject.com/useritems/MathParser.asp

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #7 (permalink)  
Antiguo 12/01/2007, 14:42
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Evaluar string en C#

Cita:
Iniciado por cards Ver Mensaje
erick_arcini, si eso ya lo he dixo yo mismo al principio XD
el problema k tengo no es ese :P

El problema es "evaluar" ese nuevo string con los Math.cos & cia y que devuelva un resultado.
Saludos ^^
jajaja que bruto soy, ni me di cuenta

pues mira, acabo de hacer esta linea de codigo

Código:
cadena.Substring(cadena.IndexOf("Math.Cos", 0) + 2, cadena.IndexOf(")", cadena.IndexOf("Math.Cos", 0) + 2) - (cadena.IndexOf("Math.Cos", 0) + 2));
En el caso de esta cadena: ---->"2*8-9/Math.Cos(105)"
ese codigo que te acabo de poner te devuelve el "105"

ya de ahi puedes, pues no se, ocupar un array de resultados dependiendo de las cadenas que vas a buscar, y me refiero a "MAth.SIn" y todas esas, y de esos resultados puedes ir haciendo tus calculos, es lo unico que se me ocurre, espero te haya ayudado y sino, jeje pues mejor me pongo a estudiar mas . saludos cordiales
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #8 (permalink)  
Antiguo 12/01/2007, 14:48
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Evaluar string en C#

Tambien el lugar de cambiar "Cos(105)" por "Math.Cos(105)" no lo cambias por alguna simbologia asi como por ejemplo, que la letra "þ" significara el Cos, y asi evaluarias tu cadena mucho mejor, y los dejo por un momento por que voy a papear
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:26.