注册 登录
编程论坛 VB6论坛

字符串表达式变数值表达式,不用控件怎么办?

号召教育 发布于 2013-05-17 18:43, 557 次点击
"2+2"
4 回复
#2
wxflw2013-05-17 20:21
没看明白,表达式和控件有什么关系!!
#3
号召教育2013-05-18 09:35
我在网上看说要用一个什么控件,我用的是
For i = 1 To Len(Text1.Text)
If Mid(Text1.Text, i, 1) = "+" Then
s = Split(Text1.Text, "+")
For j = 0 To UBound(s)
Dim a(0 To 1) As Integer
a(j) = Val(s(j))
q = q + a(j)
Next j
ElseIf Mid(Text1.Text, i, 1) = "-" Then
s = Split(Text1.Text, "-")
For j = 0 To UBound(s)
Dim b(0 To 1) As Integer
b(j) = Val(s(j))
q = b(0) - b(1)
Next j
ElseIf Mid(Text1.Text, i, 1) = "*" Then
q = 1
s = Split(Text1.Text, "*")
For j = 0 To UBound(s)
Dim c(0 To 1) As Integer
c(j) = Val(s(j))
q = q * c(j)
Next j
ElseIf Mid(Text1.Text, i, 1) = "/" Then
s = Split(Text1.Text, "/")
For j = 0 To UBound(s)
Dim d(0 To 1) As Integer
d(j) = Val(s(j))
Next j
q = d(0) / d(1)
End If
Next i
Text1.Text = q
End Select
End Sub
有点多,还不能计算小数,请高手修改一下
#4
lowxiong2013-05-18 10:36
楼主是想做字符串表达式的四则混合运算,只需要在“工程--引用--勾选Microsoft Script Control 1.0”,然后用下述代码即可完成你需要的运算(你楼上代码里只使用了一个TextBox控件,其他都和控件无关)
Private Sub Command1_Click()
      Dim b as New ScriptControl, i as Integer,a as String
      a="2*(3+8/4)-5"
      b.Language = "VBScript"
      i = b.Eval(a)
      MsgBox i
End Sub


[ 本帖最后由 lowxiong 于 2013-5-18 10:38 编辑 ]
#5
号召教育2013-05-18 21:48
嗯,谢谢啦。
1