怎么在vb6.0内把一个由运算式组成的字符串转换为运算式?

比如“1+1”转化为1+1或者直接输出2... 比如“1+1”转化为1+1或者直接输出2 展开
 我来答
940616547
2014-01-05 · TA获得超过189个赞
知道答主
回答量:138
采纳率:46%
帮助的人:54.2万
展开全部

方法一:API函数

这是VBS的函数

方法二:自己写函数

Private Function Eval(ByVal String As String, Optional KH As Long) As Double 
'KH你不用理他,是堆栈参数,自己调用
    Dim i As Long,j As Long,k as long, l as Long,m as Long,n as Long, o As Long
    If Ismissing(KH) Then '以下为找括号,j为第几个括号内,k为最大括号数
        For i = 1 to Len(String)
           Select Case Mid(String,i,1)
               Case "("
                   j=j+1
               case ")"
                   j=j-1
           end select
               if j<0 then '当前右括号大于左括号
                       exit function
                   elseif j>k then
                       k=j
               end if
        next i
        if k<>0 then exit function '左右括号数量不等
        Eval=Eval(String,k) '调用自身
        exit function
    end if
    For i = 1 to Len(String) '开始计算,找到最里层括号
        select Case Mid(String,i,1)
            case "("
                j=j+1
            case ")"
                j=j-1
        end select
        If j=KH Then '最里层括号
            For k = i+1 To Len(String) '找对应括号
                If Mid(String,k,1)=")" then '找到最里层括号
                    l=k 'l为最里层右括号
                    exit for
                end if
            next i
        End If
        For m = j + 1 To l - 1 '幂运算^
            if mid(String,m,1) = "^" Then
                for n = m-1 to j+1
                    if not isnumeric(n) then exit for
                Next n
                o=n
                '……………………………………………………剩下的我还写不出来,等我几天
end function

方法三:看蚂蚁的回答

方法四:自己引用

骄傲地蚂蚁
2014-01-05 · TA获得超过463个赞
知道小有建树答主
回答量:885
采纳率:42%
帮助的人:431万
展开全部
Function Eval(ByVal Expressions As String) As String '文本运算vbs
   Dim Mssc As Object
   Set Mssc = CreateObject("MSScriptControl.ScriptControl")
   Mssc.Language = "vbscript"
   On Error GoTo EvalErr
   Eval = Mssc.Eval(Expressions)
   Exit Function
EvalErr:
   Exit Function
End Function

‘调用:例如:Eval(Text1)

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐缓大拉糕0X
2014-01-05 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:98.3万
展开全部
result=1+1
me.label1.caption="1+1"&resultv即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式