有如下语句:
var 
  A:string;
begin
  A:='3+2>4';
  if A then  
     showmessage('True');
end;
//想实现 if 3+2>4 then 这个判断语句应该怎么改写;我目前想到的办法是这样的:
var
  A:string;
  ADOQuery1:TADOQuery;
begin
  A:='3+2>4';
  ADOQuery1.SQL.Text:='select '+A+' from Table1';
  ADOQuery1.Open;
  if ADOQuery1.Fields[0] then
    showmessage('True');
end;请问还有其它什么更简单的方法直接实现吗?string语句

解决方案 »

  1.   

    利用外部脚本:sql、js
    利用计算器类
    自己加载脚本解释器
      

  2.   

    用lex/yacc来处理这种问题
    http://www.musikwissenschaft.uni-mainz.de/~ag/tply/tply.html
      

  3.   

    帮你弄了个lex/yacc的例子,模块你可以直接用。代码下载
    http://pan.baidu.com/share/link?shareid=1423917293&uk=1342501272
      

  4.   

    3楼的方法感觉很有用!但是太复杂了点!代码留起,以后备用!原本还想有些简便的函数之类的可以用,但看3楼写的函数太复杂了,我还是延用SQL的方法,简单些!谢谢3楼!加分!
      

  5.   

    其实不复杂啦,靠lex/yacc生成的,关键代码没几行的。