frechy escribió:
hola
gracias por tu ayuda
pero resulta q en el string no viene como hay, sino como se escribe normalmente en papel, con + - * / y no hay numeros, solo letras q son variables y necesito ese string a una funcion o variable o lo q desees.
Te explico de q trata el tema, para q tengas una vision algo mas global del problema.
Se trata de una aplicacion didacticas para calcular estructuras, entonces los usuarios tienen q introducir formulas por medio de una calculadora que he creado, con las variables en vez de numeros, por ejemplo, FAx, FAy,TC,TB... y unas 8 mas.
Para comparar las formulas, lo que kiero usar es una resolucion matematica de esa expresion, pues si lo q escribe es una expresion equivalente a la q deberia ser, el resultado de resolver esa funcion con numeros tiene q salir = en las 2 expresiones (principio de singularidad matematica).
Por eso necesito pasar el string a una funcion
A lo mejor es q no entiendo bien el codigo q pusiste.
Si me puedes hechar una mano te lo agradeceria.
Mira, para hacer eso que quieres, no basta con saber matematicas, hay que saber de Action Script. Eso se soluciona, aqui en cristalab, hay varias guias, para aprender.
Pero lo mas importante, debes conocer, mucha teoría. Para desarrollar Analizadores Sintacticos. En la ing. yo lo vi en la materia de compiladores. Sin eso, vas a batallar mucho.
Mira basicamente, si con código crees que te ayude, aqui esta, una base, analizala, si algun comando no lo entiendes, en Flash, en la parte de ayuda, viene una sección llamada "Diccionario de Action Script", la verdad no he encotrado nada mejor que eso.
Código :
function suma() {
resultado = 0;
for (i in arguments[0]) {
if (isNaN(Number(arguments[0][i]))) {
valor = eval(arguments[0][i]);
} else {
valor = Number(arguments[0][i]);
}
resultado += valor;
}
trace(resultado);
}
function parsear(texto) {
operacion = texto.split('+');
if (operacion.length>0) {
//Con esto vemos si hay sumas
suma(operacion);
}
}
A = 2;
B = 1;
//esto es lo de tu textfield, un String y lo parseas
mitexto = "8+B+A";
parsear(mitexto);
Suerte!
pd: Movi tu mensaje privado al foro, por que en un futuro si alguien tiene una duda similar, poder pasarle el link.