Edilson, pelo que eu entendi, você quer recuperar um string com uma fórmula e a partir dessa string e obter o resultado da fórmula. Ou seja, pegar a string '(100*30)/12' e de alguma maneira, obter o resultado da conta que a string representa (250.00).
  A linguagem Delphi não tem este recurso, o que seria equivalente a um 'eval(string)' do _javascript_.
  A solução para seu caso é usar um recurso chamado de script. Normalmente um componente que pega a string, faz o parse dela e executa o código do script dentro da sua aplicação. Seu script pode ser uma simples conta, como no seu caso, ou uma rotina completa com if's, for, while, execução de functions e procedures etc.
  Eu utilizo aqui um chamado Pascal Script da REM Objects e é free.

  http://www.remobjects.com/page.asp?id=%7B9A30A672-62C8-4131-BA89-EEBBE7E302E6%7D

  Você pode passar uma variável do seu código para dentro do script. Ao executar o script, sua variável pode receber o resultado da conta. No seu caso, vc armazena no banco somente a fórmula. Ao passar a formula para o script, vc deve simular um pequeno programa, por Exemplo

  lScript := lScript + 'begin';
  lScript := lScript + ' resultado=' + SUAFORMULAAQUI ;
  lScript := lScript + 'end.';

  lScript deve ser passada para seu componente de script, compilado e executado, tudo via metodos do componente, no final do processo, sua variavel 'resultado' tem o valor resultante da sua fórmula.

Fernando Nomellini

  ----- Original Message -----
  From: Edilson Gonçalves
  To: delphi-br@yahoogrupos.com.br
  Sent: Thursday, June 01, 2006 6:19 PM
  Subject: [delphi-br] Decompor Expressão Matemática


  Amigos,

  Estou com o seguinte problema: Tenho armazenado no banco de bancos em campo
  do tipo VARCHAR, uma expressão matemática. Como por exemplo: (100 * 30)/12,
  INCLUSIVE COM OS PARENTESES.
  O que preciso é: buscar no banco de dados esta expressão e atribuir o seu
  resultado a um campo TEdit. Mas nao estou conseguindo converter a string
  para que a mesma seja executada.

  Se puderem ajudar, agradeço.

  Edilson Gonçalves


[As partes desta mensagem que não continham texto foram removidas]



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a