none
Expressão numérica em uma Célula da tabela

    Question

  • Boa noite pessoal,

    Estou ainda em descoberta da linguagem VB, e portanto ando pesquisando e tentando aprender ao máximo. E me surgiu uma dúvida que iria facilitar muito em um software que estou desenvolvendo.

    Seria praticamente uma "Calculadora", só que buscando uma expressão no banco de dados. Exemplo:

    No banco, cadastro a seguinte fórmula: (Qtd+2)/(75*X) //Apenas um exemplo.

    Onde no programa, eu gostaria que ele interpretasse:

    Qtd.text = Qtd
    X.text = X

    E automaticamente, ao receber ao ler a formula da tabela, ele buscasse as variaveis no sistema e efetuasse o cálculo.
    basicamente,  à grosso modo:

    Resultado = Qtd.text + 2 / 75 * X.text.

    Essa conta, digo a posição de valores, não mudaria. Seria uma fórmula constante.
    Então seria apenas identificar se os operadores são + - * / , e qual o valor dos números para assim efetuar a conta.

    Deu para entender?

    Obrigado! 


    Wednesday, September 14, 2011 1:33 AM

Answers

All replies

  • Alan,

     

    Essa fórmula precisaria estar em um banco de dados??

    Você poderia simplesmente criar a fórmula no seu código e criar uma variação da fórmula (caso seja necessário), utilizando Loops.

     

    Primeiro responda ..... é necessário que esta fórmula esteja em banco de dados???

     

    Poste sua resposta, tentaremos lhe ajudar.

     

    Geraldo Ribeiro

     


    Wednesday, September 14, 2011 7:24 PM
  • Olá Geraldo! Boa Tarde.

    Sim, esta fórmula tem de estar em um banco de dados.


    O que estou tentando fazer agora, é um pouco diferente. Já tentei por Substring, identificar cada item da formula e etc, porém ficou um código muito extenso, já que as fórmulas que uso tem 13 caracteres.

    Então estou vendo outra solução, que se eu conseguir, será excelente.

    O que pretendo é trazer a fórmula por partes, identificando cada parte com substring, salvando em novas variaveis e essas fazendo a comparação que desejo (Se é +, -, / ou *).  Aí faria uma base de calculo padrão:

    Valorcalculado = (var1 & var2 & var3) & var4 & var 5

    Onde:    ( 01         +        10  )      -       50     
    Aí obtendo essa conta, já trazendo o resultado.


    Agora a dúvida maior é:

    Como transformo String em operadores? É possível usar uma variável como operador? Na questão que tentei aqui ele apenas Concatenou valores, mas não efetuou a conta aritmética.

    Agradeço pela atenção!

    Abç. 
    Thursday, September 15, 2011 5:55 PM
  • PAra isso vc precisa implementar um parser (que nao existe nativamente no .NET).. veja um exemplo de como fazer isso:

    http://www.codeproject.com/KB/recipes/CalcEngine.aspx

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    Thursday, September 15, 2011 6:10 PM