读文本调用函数,求大师功能:1、读取文本内容触发程序中定义好的函数。2、文本中要支持if for语句比如,我在VB
读文本调用函数,求大师
功能:
1、读取文本内容触发程序中定义好的函数。
2、文本中要支持if for语句
比如,我在VB中定义一函数:
public Function pant(tet as string)
List.AddItem tet
End Function
我在TXT文本中写入pant "hello" 或 pant text1 (大概就这意思,格式也许错了)
然后程序中的list就会添加显示
hello
text1
是不是有点乱,有人说ScriptControl1。
我试过,可以实现简单的文本输出,也支持IF FOR语句,但是不会调用函数,
也许是我的问题。
[解决办法]
Dim fso, f,s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\testfile.txt", 1,0)
Do While f.AtEndOfStream <> True
s = f.ReadLine
if instr(s,"pant")>0 then
pant mid(s,6)
end if
Loop
f.Close
set f=nothing
set fso=nothing
[解决办法]
也就是说,你想自己实现一个简单的脚本解析器.
在文本文件中写入要执行的脚本,再由你写的程序加载,并执行其中所写的代码.
这个东西首先要进行语法解析,然后再进行代码重构,最终再实现具体功能.
所支持的每一个语句,你都要对它们进行单独处理,也就是说如果你想在你的脚本里支持100个语句,那你至少要写100种解析,这还不包括对这100个语句之间互相关联的逻辑处理代码.
有点头痛,除非你支持的语句非常少,不然有得写了.
[解决办法]
如果只是为代码中的函数设定参数,可以仿照 .ini 文件的方式:
[ListAdd]
Loop = 10
Pant = "ello"
Delay = 3
读到相应的段标签,就首先调用 API 读入参数,然后运行函数:
Public Sub ListAdd(Byval loop As Integer, Byval delay as Integer, Byval pant As String)
Dim i As Integer
For i = 1 To 10
List1.AddItem pant
Sleep delay * 1000
Next i
End Sub
