Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   necesito una pequeña ayuda (https://www.clubdelphi.com/foros/showthread.php?t=38714)

Robert01 25-12-2006 05:12:04

necesito una pequeña ayuda
 
¿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:
Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 00:21:44.

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