如“基本工资-扣款+(pi)”,请问怎样判断其是否合法?

解决方案 »

  1.   

    比较难,毕竟Delphi不是解释语言啊,好好学编译原理吧!
      

  2.   

    请问如何判断一个算术表达式是否合法,如:A+B*C
    包括加减乘除和括号等运算符
    谢谢!!
      

  3.   

    象这样123*456+56(89+45)-56/1+46213
    完全可以在DELPHI中实现的,
    它可以用栈,可以用指针,也可以用二叉树
    你可以看看数据结构就可以了很简单的,
      

  4.   

    不用这么麻烦吧,什么数据结构的,写得不好还容易出错,又花时间,学一招吧
    query1.close;
    query1.Sql.text := 'select 基本工资-扣款+(pi) from 你的表';
    try 
    query1.Open;
    except
      showmessage('不合法');
    end;
    showmessage('合法');如果是SQL server
    query1.close;
    query1.Sql.text := 'select 123*456+56(89+45)-56/1+46213';
    try 
    query1.Open;
    except
      showmessage('不合法');
    end;
    showmessage('合法');如果是Oracle
    query1.close;
    query1.Sql.text := 'select 123*456+56(89+45)-56/1+46213 from dual';
    try 
    query1.Open;
    except
      showmessage('不合法');
    end;
    showmessage('合法');