现在设定一句表达式(表达式不是唯一的,不过都是由非与或表示):
(ORA-||EXP-)&&(!(ORA-04068||EXP-00008))&&(Export terminated successfully with warnings)我想达到的目的是 把这表达式转换成delphi源代码下 if ((ORA-)OR(EXP-)) AND (NOT((ORA_04068 OR EXP-00008))) AND (Export terminated successfully with warnings) THEN
BEGIN
//...
END;就是动态构造if结构,表达式 条件组成和之间的逻辑关系是变化的,不是唯一, 有可能(aaaa)or (vvvv) and (lll)等等的组合请问一下怎样把这样的非与或字符串转换 解析成if结构呢? 谢谢
(ORA-||EXP-)&&(!(ORA-04068||EXP-00008))&&(Export terminated successfully with warnings)我想达到的目的是 把这表达式转换成delphi源代码下 if ((ORA-)OR(EXP-)) AND (NOT((ORA_04068 OR EXP-00008))) AND (Export terminated successfully with warnings) THEN
BEGIN
//...
END;就是动态构造if结构,表达式 条件组成和之间的逻辑关系是变化的,不是唯一, 有可能(aaaa)or (vvvv) and (lll)等等的组合请问一下怎样把这样的非与或字符串转换 解析成if结构呢? 谢谢
如果是的话:
'|'替换成' or '
'&&'替换成' and '
'!'替换成' not '
只要原来的表达式是逻辑正确的,替换后也没有问题。如果原来的表达式不是字符串,只是逻辑判断,那么用代码生成也很容易。
求得最里面括号表达式的值为true,则用这个true再取和外面的表达式进行逻辑比较,一步步地最终得出最终的结果true 或false,
然后在函数中ifthen(解析表达式结果,true_value,false_value);即可
那就需要某种运行时脚本执行功能。
好在Delphi是太强大了,只有你想不到,只有你不知道,而没有做不到啊。
看这个dws,免费、开源的(不是免费、开源的东西,连看都不想看):
http://sourceforge.net/projects/dws