急!!!!!!!!!!!!!!!!!!!!!!!!

bency 2001-08-29 03:54:42
请问如何把一字符串转化成表达式,例如:如何把字符串"(a+b)*c/0.9"转化为
d=(a+b)*c/0.9?????
当然这个字符串是定义在字段中的公式.
望各位大虾指教
...全文
179 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liulee 2001-08-30
  • 打赏
  • 举报
回复
给你一个思路:
1.解析该字串中有多少个变量,譬如(a+b)*c/0.9 有三个变量,这个不麻烦吧?挨个字符扫描一趟就可以了。
2.作为公式,肯定需要有入口的,那么入口参数如何输入呢?
用标准的控件肯定麻烦,而数据窗就可以很好地解决:
动态构建数据窗,语法: select 0 a,0 b,0 c from dual (oracle)
insertrow
setitem(1,'#1',a的值)
....
3.得到计算值:
string ls_desc
dec ldec_result
ls_desc = "(#1+#2)*#3/0.9"
ldec_result = dec(dw_1.describe("Evaluate('"+ls_desc + "',0)"))

思路而已,具体实现如何构建数据窗,如何传递参数,如何处理参数的个数等都需要你自己写代码啦。


bency 2001-08-29
  • 打赏
  • 举报
回复
to xslee:
有没有现成的??给我:forwardtech@elong.com
xslee 2001-08-29
  • 打赏
  • 举报
回复
自己编个简单的公式解析器
pbdesigner 2001-08-29
  • 打赏
  • 举报
回复
你要将a/b/c转成相关栏位或表达式
bency 2001-08-29
  • 打赏
  • 举报
回复
他还是报错,报"expression is not valid"
bency 2001-08-29
  • 打赏
  • 举报
回复
他还是报错,报"expression is not valid"
gungod2000 2001-08-29
  • 打赏
  • 举报
回复
你要先把表达式a,b,b得值算出,然后写回到公式中就行了。
例如(a+b)*c/0.9,先把字符读入到一个数组中ls_str[]
ls_str[1]='('
ls_str[2]='a'
ls_str[3]='+'
........
表达式a的值应该是可以算出的,假设是value1,同理b和c值分别是value2,value3
然后再写回表达式如(value1+value2)*value3/0.9
bency 2001-08-29
  • 打赏
  • 举报
回复
但是他报错,报"expression is not valid"
enyuan 2001-08-29
  • 打赏
  • 举报
回复
pbdesigner是对
samwcm 2001-08-29
  • 打赏
  • 举报
回复
en......pbdesigner(MIS/ERP开发)写的就可以了。
bency 2001-08-29
  • 打赏
  • 举报
回复
我的意思是一个公式存储在数据表中,当然这个公式肯定取出来是字符串,如何运用他来计算
gungod2000 2001-08-29
  • 打赏
  • 举报
回复
同意楼上的意见
pbdesigner 2001-08-29
  • 打赏
  • 举报
回复
string ls_desc
dec ldec_result
ls_desc = "(a+b)*c/0.9"
ldec_result = dec(dw_1.describe("Evaluate('"+ls_desc + "',0)"))
chen927 2001-08-29
  • 打赏
  • 举报
回复
实在是有点难!
bency 2001-08-29
  • 打赏
  • 举报
回复
各位高手是不是觉得小儿科呀

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧