主题:如何实现将输入字符串转为表达式?
zzhh612
[专家分:0] 发布于 2010-06-10 10:21:00
例如:在一个文本框中输入 6*7-(100/6) 这样一个字符串,程序能根据这个串计算出与之对应的表过式的结果来,当然如果能直接将字符串转换为表过式的话,这个问题就解决了,不知有没有这样的函数 ?
回复列表 (共4个回复)
沙发
一江秋水 [专家分:9680] 发布于 2010-06-10 17:45:00
一、请参考拙作:
用户控件制作实例与讲解(http://bbs.pfan.cn/post-280808.html),附件里有一个四则运算控件,研究一下也许能解决你的问题
二、还有一种更为简单的办法,代码如下:
Private Sub Command1_Click()
Dim OBJ As Object
Set OBJ = CreateObject("MSScriptControl.ScriptControl")'在工程中引用 Microsoft Script Control 1.0
OBJ.Language = "vbscript" '定义内部脚本语言为 VBScript
Text2 = OBJ.Eval(Text1)
Set OBJ = Nothing
End Sub
注意3点:
1.计算式中不能有二进制数据;
2.16进制和8进制标记前要加上英文字符“&”。例如:
1010-&Hff*((&O7-18)/&Ha-&H6)/3*&O7
3.如果计算结果≥H80000000,则以负数表示,HFFFFFFFF表示为-1
板凳
zzhh612 [专家分:0] 发布于 2010-06-13 23:09:00
谢谢,学习了。
3 楼
jhb028549 [专家分:0] 发布于 2010-06-24 10:08:00
这有什么意义,直接用val把它算出来不就可以了么.
4 楼
春风化雨 [专家分:0] 发布于 2010-06-26 11:46:00
我也不得其解,算术计算也许好办些,但是有变量引用就更难办了。
a=5
b=3
(5*a+3*b)/(a+b)
我来回复