PDA

Ver la Versión Completa : necesito una pequeña ayuda


Robert01
25-12-2006, 05:12:04
¿Como debe hacer para ingresar el nombre de una función, de las de la unit math, a través de un cuadro de tecto u otro control similar para que sea reconocida como una función?

al ingresar el nombre a mi me pone que es una string y no toma los valores para esa función: supongamos Ln(x).

Desde ya gracias a todos.

Una felíz navidad para todos!

Lepe
25-12-2006, 13:19:36
Lo que intuyes no puedes hacerlo rápidamente. Hay componentes para interpretar cadenas como expresiones matemáticas, quizás incluyan la función Ln y otras parecidas. Al menos en delphi (instalación estándar), no hay nada.

Para algo simple, puedes usar esto:

var texto, parametro:string
posLn, pospar :integer; Posición del texto Ln y posición de los parámetros
texto := lowercase(trim(edit1.text)); // ejemplo: 'ln(367)'
PosLN = pos ('ln(',texto);

if pos <>0 then
begin // es un logaritmo
//Ahora con pos busca los parámetros
parametro := texto;
delete(parametro, posLN+3); // nos queda: '367)'
pospar := pos(')', parametro) ;
if pospar <>0 then
begin
parametro := copy(parametro, 1, pospar); // en parametro nos queda: '367'
ResultadoDelLogaritmo := Ln(StrToInt(parametro));
end;
end;


Otra opción es usar Expresiones regulares, busca en el foro por "RexExp" es algo más complejo, pero seguro que te sirve.



Saludos

Robert01
25-12-2006, 13:28:04
Hola lepe

Gracias por tu ayuda.

Voy a probar el código para ver si consigo ir adaptarlo a mis necesidades.

Felíz navidad si eres creyente y si no lo eres también porque creo que se festeja en gran parte del mundo.