比如我们要将一个字符串中的特定字符串调用特定的函数。一个两个函数直接固定设置就可以了,但函数一多就麻烦了。每个函数的参数个数不固定,参数类型不一样。
如何简单有效的调用函数呢?!Public Function StrCall(ByVal Expression As String)Dim SResult As StringDo Until Not 包含特定字符串 '如 {MID(参数1,参数2,参数3)}
SResult = ""
获得参数
分割参数
SResult = Mid(参数1, 参数2, 参数3)
'替换
Expression = Replace(Expression, 特定字符串, SResult)
LoopStrCall = Expression
End Function
如何简单有效的调用函数呢?!Public Function StrCall(ByVal Expression As String)Dim SResult As StringDo Until Not 包含特定字符串 '如 {MID(参数1,参数2,参数3)}
SResult = ""
获得参数
分割参数
SResult = Mid(参数1, 参数2, 参数3)
'替换
Expression = Replace(Expression, 特定字符串, SResult)
LoopStrCall = Expression
End Function
http://topic.csdn.net/u/20090727/13/385B59B5-9609-41B7-8DB9-2628A7EE376E.html
http://topic.csdn.net/u/20091127/13/30781CE2-2B68-435D-8048-B4D511130F0B.html
http://topic.csdn.net/u/20080320/20/730421d6-ec5f-4c3c-9a72-52455b294ac3.html
http://topic.csdn.net/u/20081211/13/0ea14996-0b90-4cd0-91dc-cb558c86cee1.html
---------------------------------------不同的函数完成一个不同的功能,建议该合并的合并,然后直接调用你的函数,而不要去绕圈子调用。
'在窗体上添加 ScriptControl、CommandButton、TextBox(多行)
Option ExplicitPrivate Sub Command1_Click()
ScriptControl1.Reset
ScriptControl1.AddObject "Form1", Me, True
ScriptControl1.AddCode Text1.Text
ScriptControl1.Run "ShowTime"
End SubPrivate Sub Form_Load()
ScriptControl1.Language = "VBScript"
Text1 = "Sub ShowTime()" & vbCrLf & _
" Form1.Caption = Now()" & vbCrLf & _
"End Sub"
End Sub这个我们可以把要解析的函数弄到“ScriptControl1.AddCode Text1.Text”中的Text1.Text中去这样我们就可以达到动态编辑源码了?!不是么?!