[高难度]开通你的脑!怎么实现字符串变成可以执行的代码?

yyuj 2004-08-12 10:05:26
比如我现在有一个表达式字符串:
Dim mString As String
假设现在有三个变量:UserID,Key,Key2
值分别为:True,True,"12341"
mString="UserID=False or Key=True And Key2='12341'"
MsgBox execute(mString)
那么弹出的结果为:true是一个表达式的值!
谁能做出来呀??想一下呀。。。

想出了,分值不够再加!

我现在自己是想出一个方法,,不过要进行IO操作。。。比较麻烦。
...全文
128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihonggen0 2004-08-12
  • 打赏
  • 举报
回复
利用API 实现字符串表达式的计算

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

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


Sub calc(ByVal x As String)
Dim result
ExecuteLine "dim x as double"
ExecuteLine "x= " & x
ExecuteLine "clipboard.settext x"
result = Clipboard.GetText
MsgBox x & "=" & result
Set result = Nothing
End Sub

Private Sub Command1_Click()
calc Text1
End Sub

Private Sub Form_Load()
Text1.Text = "1+2*3-4/5"
End Sub



zjcxc 2004-08-12
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3231/3231596.xml?temp=.7471887

我喜欢最后一个的
rainstormmaster 2004-08-12
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3231/3231596.xml?temp=.7471887
yyuj 2004-08-12
  • 打赏
  • 举报
回复
你回答的太简单了吧。。那问题是你怎么把mString="UserID=False or Key=True And Key2='12341'"转换成bool=UserID=False or Key=True And Key2='12341'?????
fishmans 2004-08-12
  • 打赏
  • 举报
回复
dim Bool as boolean

bool=UserID=False or Key=True And Key2='12341'
if bool=true then
mstring=" true"
else
mstring="false"
endif
msgbox mstring
yyuj 2004-08-12
  • 打赏
  • 举报
回复
补充一下。。通常情况下是用来计算表达式的,,不是进行那种高级的,比如文件操作这样。如果能想的出来更好。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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