Ver Mensaje Individual
  #2  
Antiguo 25-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 25-12-2006 a las 13:23:21.
Responder Con Cita