bri*_*ant 1 scripting vba createobject filesystemobject
我收到了一位来自这里的好朋友的代码,他们愿意花时间和精力与新手分享他们的知识:
Sub ReadLinesFromAFileOneAfterAnother ()
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso, MyFile, FileName, TextLine
Set fso = CreateObject("Scripting.FileSystemObject")
FileName = "c:\testfile.txt"
Set MyFile = fso.OpenTextFile(FileName, ForReading)
'' Read from the file
Do While MyFile.AtEndOfStream <> True
TextLine = MyFile.ReadLine
'' Do stuff to TextLine
Loop
MyFile.Close
End Sub
Run Code Online (Sandbox Code Playgroud)
虽然我知道这段代码执行了什么任务,但我仍然想知道它的每个元素的含义和作用.任何人都可以向我解释一下这段代码的第三行是什么:
Dim fso, MyFile, FileName, TextLine
Run Code Online (Sandbox Code Playgroud)
什么是"fso"首先?我知道它代表"文件系统对象",但它没有什么可以向我解释它实际是什么以及它实现了什么.这三个词后面的意思是什么("MyFile","FileName","TextLine")?它们是某种参数吗?
我读过这个:http: //msdn.microsoft.com/en-us/library/h7se9d4f(VS.85).aspx
这个:http://msdn.microsoft.com/en-us/library/ebkhfaaz(VS.85).aspx
但感觉就像那些自己能够写出来的人那些材料一样 - 我几乎什么都不懂.当然,有些事情或多或少都很清楚,但还有很多其他的术语和文字我都不知道!最终,没有一个完整而清晰的画面.
所以,我放弃了,决定回到这里.这个网站可能是互联网上为数不多的(实际上我还没有遇到任何其他网站)在其规则中声明的网站之一:"毫无疑问太琐碎或太"新手"".这给了我一个问这个问题的理由.
所以,请任何人,用简单的语言向我解释"fso"是什么.确切地说,上面代码的第三行是关于什么的.
谢谢大家.
代码行:
Dim fso, MyFile, FileName, TextLine
Run Code Online (Sandbox Code Playgroud)
声明类型为variant的'变量'.
变量是内存中的一些空间,带有名称和类型.您可以使用它们让程序知道您将在代码中使用它们.
通常你会给变量一个类型(比如整数或字符串),但编码器没有,所以它默认为变量,它可以采用任何类型(本质上).
完成后:
Set fso = CreateObject("Scripting.FileSystemObject")
Run Code Online (Sandbox Code Playgroud)
然后fso包含一些可以对文件系统执行操作的代码.
Set MyFile = fso.OpenTextFile(FileName, ForReading)
Run Code Online (Sandbox Code Playgroud)
意味着您正在使用fso功能打开您在'filename'变量中指定的文件名,并且您已在'myfile'变量中引用它.
因此,您可以使用myfile变量对文件执行更多操作.
'do while'循环一次读取该文件一行(myfile.readline)并将结果放入'textline'变量中,每次绕循环时,该变量都会保存文件中不同的文本行,直到文件完成了.
这段代码的想法是逐行读取文件,当你遇到它时,用每行的内容做一些事情.您可以打印,记录,显示给用户等,因为子标题指示!
老实说,关于VB的基础知识对于您能够解释这些代码至关重要,因此我建议您查找在线教程或书籍.