W wyton2000 Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-17 #1 现有一字符串型字段formula(其值可能为'(a+b)/c','a+d/f',等等)其中a,b,c为字段名, 如何得到该公式计算的结果。注意formula也是一字段。
C Croco Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-17 #2 一、寻一个支持变量计算的表达式分析控件。 RENATE SCHAAF 写的 parser10.zip 满足要求。 http://www.csdn.net/dev/Delphi/vcl/vcltools/parser10.zip 二、自己改装成支持分步计算的,用分号或逗号分隔。 a=3; b=a; c=2; (a+b)/c 三、同字段关联。
一、寻一个支持变量计算的表达式分析控件。 RENATE SCHAAF 写的 parser10.zip 满足要求。 http://www.csdn.net/dev/Delphi/vcl/vcltools/parser10.zip 二、自己改装成支持分步计算的,用分号或逗号分隔。 a=3; b=a; c=2; (a+b)/c 三、同字段关联。
T tanglu Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-17 #3 学过编译原理么? 自己写词法分析器和语法分析器来搞定它。
B BaKuBaKu Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-21 #4 很简单啊。 《数据结构》课本上在讲堆栈时有一个表达式计算的例子,不过你这个在套用之前必须 做一次分词的工作。就是编译原理的词法分析,很简单的。
H hhzh426 Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-21 #5 sql 语句就能解决问题(如果表达式不是太复杂的话) 'select '+query['formula']+' as result from table1 where 唯一条件' 假设formula=(a+b)/c 则sql语句为: 'select (a+b)/c as result from table1 where 唯一条件'
sql 语句就能解决问题(如果表达式不是太复杂的话) 'select '+query['formula']+' as result from table1 where 唯一条件' 假设formula=(a+b)/c 则sql语句为: 'select (a+b)/c as result from table1 where 唯一条件'
G goldenforest Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-28 #9 CROCO的办法真好,我已经喜欢这个控件了!
S small_bridge Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-28 #10 对了,用parser10.zip; 很方便的,干吗还要自己编写,即累有不讨好。 如果要练练手,自己写写到也很好的
L lipingcool Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-31 #13 难道写sql语句就很难吗?动不动就用第三方控件!
E edisons Unregistered / Unconfirmed GUEST, unregistred user! 2000-10-31 #14 先用具体数值替换表达式中的字母,然后用递归算法就可以搞定了, 不过要注意先乘除后加减的问题.
L liangj Unregistered / Unconfirmed GUEST, unregistred user! 2001-04-02 #18 我倒是将一个paser控件给加了一些功能,比如扩充数学函数、识别希腊字母。