这个问题如何实现(50分)

  • 主题发起人 主题发起人 fstao
  • 开始时间 开始时间
F

fstao

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi的问题:
假如form1里有Edit1、Edit2和button1,假如运行form1时,随便在edit1输入:
“1+a+b+2*b+3+abc/c”,按Button1时,则Edit2出现“1+table1a.value+table1b.value+
2*table1b.value+3+table1abc.value/table1c.value”,请问如何实现呢?
 
用函数stringreplace
 
怎么又是一个运算问题?
一个一个字符自已判断吧
 
逐个字符判断,当读到字母并且他前面是运算符则在字母前面加上Table
 
可以根据这个改一下:-)
http://www.gislab.ecnu.edu.cn/delphibbs/dispq.asp?LID=149777
 
自己编一个表达式分析程序,考虑的问题:
1.列出所有操作变量可能出现的情况
* 单个数字
* 单个变量
* 数字后跟变量
* 变量后跟变量
2.列出所有操作变量可能出现的情况
* + - * /
* 运算的优先级
... ...

并不是很麻烦,关键要考虑全面,可能出现的各种情况.
 
只有abc吗?请将规则再说明白些.
 
这种问题的难(繁?)点是在处理细节上!
 
如果是ORACLE数据库,则可以这样实现:
1、首先做一遍循环,将各字段对应的值填入字符串。
这个应该没有问题吧
2、将整理好的字符串送入ORACLE,让ORACLE替你计算。
比如:
select 1+2+3*45-(3-2)*23.456 from dual
执行一下这个SQL语句,就可以得到结果。

别的数据库应该也有此类功能,只是哑元表的表明不叫dual而已。
 
1. use pos()
2. why?
 
多人接受答案了。
 
后退
顶部