例如:W001+C002+(A03*K09/Y33)*1000-1000比如上边的语句,我怎么获取其中的参数呢?
W001,C002,A03,K09,Y33 并且讲这些参数保存到数组或者StringList中。
并且 在我计算好值后反填到该川中。
比如我计算的W001=100,C002=200,A03=300,K09=400,Y33=500
那么该川就是 100+200+(300*400/500)*1000-1000
在线等待。急急

解决方案 »

  1.   

    W001+C002+(A03*K09/Y33)*1000-1000
    上边的W001是一个参数,可以用任何的数字代替。
      

  2.   

    就象计算薪资里一样,定义了函数,W001+C002+(A03*K09/Y33)*1000-1000
    可能很多种,但是知道W001=100 首先要知道字符串里有那些参数,进而
    用数字取代它。
      

  3.   

    我再举例给你吧1+2现在不是 1+2 而是 A+B
    这时候 A和B就是参数了,我想获取A和B。
    当然表达式不可能是1+2这么简单的了,是很复杂的了。
    其中的运算符要支持+,-,*,/等了。
    这回清楚了吧。
      

  4.   

    你可以这样做,
    将表达式用stringreplace()将所以的*,/,-换成+,然后将它拆分到stringlist中,
    循环将stringlist中每一行不是数值的取出来就是你要的变量!!
      

  5.   


    tmpstr := 'W001+C002+(A03*K09/Y33)*1000-1000'
    tmpstr := StringReplace(tmpstr ,'*','+',rfReplaceAll);
    tmpstr := StringReplace(tmpstr ,'/','+',rfReplaceAll);
    tmpstr := StringReplace(tmpstr ,'-','+',rfReplaceAll);
    tmpstr := StringReplace(tmpstr ,'(','',rfReplaceAll);
    tmpstr := StringReplace(tmpstr ,')','',rfReplaceAll);tmpList.Delimiter:='+';
    tmpList.DelimitedText := tmpstr;for i:= 0 to tmplist.count do
    begin
       ...
    end;