Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Convertir un string a modo de poderlo ejecutar... (https://www.clubdelphi.com/foros/showthread.php?t=24179)

razadi 10-08-2005 21:35:20

Convertir un string a modo de poderlo ejecutar...
 
Que tal, me encuentro en una situación cuanto dificil, lo que quiero hacer es lo siguiente:

por medio del sistema se genera una formula que paso a un campo de una tabla, por ejemplo:

formula := '({valor1}*{valor2})/({valor3}*100)';

y lo que quiero hacer es que al usuario se le presente algo asi:

Valor 1 = 10
Valor 2 = 40
Valor 3 = 3

y cuando el usuario escriba el valor de cada variable {valorx} y presione un boton, se ejecute esa formula sustituyendo {valor1} por 10 y asi sucesivamente que quede así:

dValorFormula = (10*40)/(3*100);

donde dValorFormula es de tipo Double;

Alguien que pueda orientar para hacerlo o que me digo como le podria hacer, se los agradezco.

jmariano 10-08-2005 23:42:07

Saludos!

Para hacer algo asi, primero, tendrás que utilizar alguna rutina de Delphi sobre tratamiento de cadenas, como, por ejemplo, "AnsiReplaceText", y sustituir cada parámetro por los valores numéricos dados por el usuario, y después, una vez obtenida la expresión de forma correcta, viene lo mas dificil: analizar la cadena e ir calculando los valores según los operadores contenidos en ella (tendrás que hacerlo manualmente, mediante bucles, etc., porque Delphi no posee ninguna función que permita evaluar una expresión dada como cadena).

Otra alternativa, si no quieres complicarte mucho, es utilizar un componente de terceros que te permita, precisamente, evaluar estas expresiones. Para mas información visita el siguiente hilo donde se trata el mismo tema: http://www.clubdelphi.com/foros/show...ar+expresiones

Chao!

jfgarcia 11-08-2005 04:09:47

Tal vez lo que necesitas lo encuentres en
http://remobjects.com/page.asp?id={9A30A672-62C8-4131-BA89-EEBBE7E302E6}

No sólo permite evaluar expresiones, sino "ejecutar" código Delphi variable.

Es un excelente paquete. Recomendado.


La franja horaria es GMT +2. Ahora son las 07:42:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi