开发工具:delphi7
想要的效果如下:例如K=(a+b)*c=ac+bc,当按下按钮时执行逻辑运算,得出结果(ac+bc)。这个只是举例说明,公式肯定比这个复杂点,但仅涉及加和乘的运算。网上和各位热心朋友介绍了不少算法,但是都只能解决k=(5+6)*2=22之类的数字运算,对于a、b、c等等之类的字符的逻辑数学运算均不行。现在继续发帖请教高手。我水平有限,实在无法解决这个问题了。谢谢!

解决方案 »

  1.   

    这个很简单
    1.利用active script,导入生成active script控件
     它可支持JScript及VBSript
     不光是简单的表达式运算(包括所有的数学函数),还可以执行JScript及VBSript对像
    2.第三方控件,如FastScript,它支持的更多,除了上面的二个外,还支持PASCAL Script,C Script如C Script代码:
     fsScript1.AddRTTI();
     fsScript1.Lines.Add('{ int x=10; int y; y=x+100;double z=sin(1.2);ShowMessage(z); }');
     fsScript1.Run();
     int m=fsScript1.Variables['y'];
     ShowMessage(m);
      

  2.   

    想了下,用matlab应该可以,不过,matlib好像没有for delphi的开发接口,用C的话没问题的
    (以前曾小小研究下)
      

  3.   

    我以看过相关用C语言编写的表达式的解析算法,但是一来对C语言比较陌生,基本不会。二来,也不知道如何在delphi里面调用C语言编写的程序。请赐教。
      

  4.   

    本来打算路过的,看到LZ第二个问题也不知道如何在delphi里面调用C语言编写的程序。
    把C代码写成一个dll,然后在delphi里调用还是可以的,例如function test(Buffer:pchar;BufferSize:integer;Items:pchar):integer;stdcall; extern 'test.Dll';
      

  5.   

    如果没有现成的控件或源码,自己写一个难度的确有点大.
    我说过的,matlib肯定可以,我看了下,delphi可以调用matlib库的
    不过要化点功夫
    我这里只能提供思路,余下的要楼主化心思研究了
      

  6.   

    或者换个想法,开发这样的工具是不是直接使用matlib开发更好更方便?
      

  7.   

    对一个算式用POS函数找“(”,找“*”,等等,根据预先定义的字符运算的规则处理。