怎么样计算"1+2*9"这样的字符串

silverblade 2003-09-29 05:18:45
一个变量里面存的是类似"1+2*3/4"这样的可以计算的四则运算题,用什么简单的办法可以得到结果。请注意,要简单。如果是把这个字符串分割开再算接别说了。

引申出一个问题。怎么样再VB中运行类似脚本的东西。
比如一个变量中保存有:
dim a as integer
a=10
print a
这样的VB代码,怎么样在程序中运行?
...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodname008 2003-10-05
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long

Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function

Private Sub Command1_Click()
ExecuteLine "msgbox 1+2*9"
End Sub
zb007 2003-10-05
  • 打赏
  • 举报
回复
菜单"工程/引用/Microsoft Script Control 1.0"

Private Sub Command2_Click()
Dim Eval As New ScriptControl

Eval.Language = "VBScript"
MsgBox Eval.Eval("1+2*9")

Set Eval = Nothing
End Sub
陈年椰子 2003-10-01
  • 打赏
  • 举报
回复
可能要看看编译原理的书
关于语法, 词法分析
jlsg 2003-10-01
  • 打赏
  • 举报
回复
armu80830(此情可待) 是最简单的方法.

如果需要计算复杂一点的,可以下载一些专门的计算控件,效果还可以.

google里边很容易查到的.
gzqg 2003-09-30
  • 打赏
  • 举报
回复
ScriptControl!
至于你说的脚本问题、我想一个函数就行了吧。干嘛用什么脚本、VB不是解释语言不支持的
armu80830 2003-09-29
  • 打赏
  • 举报
回复
菜单"工程/引用/Microsoft Script Control 1.0"

Private Sub Command2_Click()
Dim Eval As New ScriptControl

Eval.Language = "VBScript"
MsgBox Eval.Eval("1+2*3/4")

Set Eval = Nothing
End Sub
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
经典的数据结构与算法问题,去看数据结构的书,讲到堆栈的时候拿4则运算作例子处理运算优先级

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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