PDA

Ver la Versión Completa : Convertir formulas Matematicas guardadas en una Cadena a un valor Numerico


javicho_villa
03-08-2005, 23:37:13
Necesito saber como poder convertir una formula guardada en una cadena string a un valor numerico.
por ejemplo:
MiCadena := '1200/30' // Cadena String con formula
MiValor := StrToFloat(MiCadena) // Trato de guardar la solucion de la formula en MiValor pero sale error como podría solucionar el problema.

Si alguine me puede ayudar se lo voy agradecer eternamente.

Gracias.

dec
04-08-2005, 00:34:58
Hola,

Si se trata de una sencilla suma y puedes acceder a los operandos (string) por separado podrías utilizar la función "StrToInt" para convertir las cadenas/operandos a Integer y a continuación hacer la suma de marras.

Si quieres ir un poco más allá y evaluar fórmulas un tanto más complejas, además de las más sencillas, quizás te interese este Hilo (http://www.clubdelphi.com/foros/showthread.php?t=11763) y el componente que se menciona en el mismo.

Crandel
04-08-2005, 05:35:51
Busca en la web por parse, parser, o parsers. Creo haber visto hace un tiempo un programa bastante lindo en Delphi que graficaba funciones ingrasadas por el usuario.

Ni idea la dirección.

javicho_villa
05-08-2005, 01:28:54
Gracias por las respuestas, es la primera vez que hago una consulta y es de me dieron una luz.

Me parece que la solucion es usando los genreadores Lex y Jacc pero la verdad no se como usarlo y estuve navegando varias hora y no encontre algo concreto para delphi.

Instale el JvInterpreter y ahi parece q ya esta el Lexy Jacc pero no se usarlo tampoco puedo ver los componentes como podria usarlo y verlos en la paleta de componentes, gracias.

Mick
05-08-2005, 02:01:44
Gracias por las respuestas, es la primera vez que hago una consulta y es de me dieron una luz.

Me parece que la solucion es usando los genreadores Lex y Jacc pero la verdad no se como usarlo y estuve navegando varias hora y no encontre algo concreto para delphi.

Instale el JvInterpreter y ahi parece q ya esta el Lexy Jacc pero no se usarlo tampoco puedo ver los componentes como podria usarlo y verlos en la paleta de componentes, gracias.

Utlizando Lex y jacc, tu defines una gramatica de un lenguaje de programacion por ejemplo, y a partir de ella te generan un codigo fuente que sabra interpretarla. Tu no necesitas tanto, solo necesitas interpretar formulas sencillas, no un lenguaje completo, aunque podrias utilizar lex y jacc para generar el codigo fuente no es necesario, porque ya existen componentes y codigo fuente que ya interpretan expresiones matematicas.

En post previos ya te han dado la informacion necesaria para encontrar en google estos parsers, pero parece que no le has hecho mucho caso, siguiendo las instrucciones de post previos buscamos en google y llegamos a:

http://www.efg2.com/Lab/Library/Delphi/MathFunctions/Parsers.htm

Donde aparecen un monton de librerias y componentes distintos para hacer precisamente lo que pides.

Saludos

javicho_villa
11-08-2005, 19:41:22
Muchas gracias

Me dieron varias luces y encontre la solucion.