大家好:求个算法与思路
是个运算表达式:A+B+C+D-E-F……
几个运算是不确定的。想在表达式中提取出单独的变量。因为变量具体的值是在另一个表中的。
例如提取后:
A
B
C
D
E
谢谢

解决方案 »

  1.   

    如果只是提取'A'等字符,可以这样var
      str:string;
      list:TStringList;
    begin
      str := 'A+B+C+D-E-F';
      list := TStringList.Create;
      ExtractStrings(['+','-'],[' '],PChar(str),list);
      ShowMessage(list.Text);
    end;
    其中 ['+','-']为你公式中出现的操作符的集合,我只列出了加和减
      

  2.   

    很感谢谢谢!
    不过不是我想要的结果。可能没有表达清楚。表达式:numZN+intSR+intXS-intZC-intGZ...
    我想循环一个一个的提取,及提取第一个变量numZN后再提起后面一个变量...。numZN+intSR+intXS-intZC-intGZ因为我需要将每个变量获取后,然后再到数据库表中去查找出对应的值相加减。类似FastReport字段表达式运算报表那种。字段是从几个表中取出的然后运算。我这里只考虑加减。
    思路:numZN+intSR+intXS-intZC-intGZ...应该替换成具体是数
    numZN=100(根据字段numZN从数据库中取出的)
    intSR=200(同样)
    intXS=300
    intZC=100
    intGZ=50
    结果:(100+200+300-100-50...)