有时候经常会用到输入一个表达式. 然后计算出相关的值.
比如输入(1+3)*(5+9)得到 56.
只知道是用堆栈的算法处理,但不知道确定的思路和代码
然后高手有的话,能发我一份,谢谢

解决方案 »

  1.   

    一个直接可用的例子http://blog.csdn.net/simonhehe/article/details/8395610
      

  2.   

    function ExpCalc(exp: string): string;
    var
      vScript: Variant;
    begin
      vScript := CreateOleObject('ScriptControl');
      vScript.Language := 'VBScript';
      Result := vScript.Eval(exp);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string;
    begin
      s:=ExpCalc('100 *4.17/0.5*(55.22+22)/3.14');
      Edit2.Text := s;
    end;