none
Expressões RRS feed

  • Pergunta

  • tenho uma expressão que é montada pelo usuário mais ou menos assim:

    ((campo1 * campo2) / campo5) ou poderá digitar (campo1 * campo2) + (campo3 / campo4)

    onde os operadores também são inseridos pelo usuário tem texbox.

    como faço para executar a string e calcular o resultado.

    grato pela atenção.

    terça-feira, 21 de agosto de 2012 01:50

Respostas

  • Você pode usar CodeDom, ScriptControl, etc...

    Abaixo um exemplo usando ScriptControl

    Dim sc As New MSScriptControl.ScriptControl()
    ' You always need to initialize a language engine
    sc.Language = "VBScript"
    ' this is the expression - in a real program it will probably be
    ' read from a textbox control 
    Dim expr As String = "12 + 3 * 10"
    Dim res As Double = sc.Eval(expr)
    ' display the result
    Console.WriteLine("{0} = {1}", expr, res)

    e aqui um link usando reflection

    http://www.codeproject.com/Articles/9519/An-expression-evaluator-written-in-VB-NET


    Bruno Ferreira de Souza
    MVP - Microsoft Valuable Professional
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro

    • Marcado como Resposta Edson BH quarta-feira, 22 de agosto de 2012 15:13
    terça-feira, 21 de agosto de 2012 02:58