什么是“暗淡FSO的,MyFile,文件名,一个TextLine”在VBA?
-
19-09-2019 - |
题
我收到这个代码从这些可爱的人在这里谁愿意花时间和精力与菜鸟分享他们的知识之一:
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
虽然我知道这个代码执行什么任务,我还是想知道它的每个元素的手段和做。任何人都可以,请向我解释一下这个代码的第三行是所有关于:
Dim fso, MyFile, FileName, TextLine
什么摆在首位是“FSO”?我知道它的全称是“文件系统对象”,但它确实很少向我解释它实际上是什么,它完成的任务。这三个下面的话是什么意思(“MyFile的”,“文件名”,“一个TextLine”)?他们是某种东西的参数?
我读过这样的: http://msdn.microsoft.com/en-us /library/h7se9d4f(VS.85).aspx
和这样的: http://msdn.microsoft的.com / EN-US /库/ ebkhfaaz(VS.85)的.aspx
但感觉像那些材料wrriten对于那些谁自己就能够把它们写 - 我几乎不明白什么。有些事情,当然,更多的还是不太清楚,但有这么多的其他条款和我不认识的单词!最终,没有一个完整的整体,清晰的画面。
于是,我放弃了,决定回到这里。这个网站可能已在其规则中声明的几个互联网(其实我还没见过任何其他)上的一个:“毫无疑问是太微不足道或者太‘菜鸟’”。这给了我一种理由问这个现在的问题。
因此,请任何人,向我解释,简单来说什么是“FSO”是。确切地说,哪些代码的第三行上述的全部。
感谢大家提前。
解决方案
的代码行:
Dim fso, MyFile, FileName, TextLine
声明的事情称为“变量的类型的变型
一个变量是一个比特的空间在存储器中的名称和类型。您可以使用它们来让知道你将要在后面的代码就利用他们的节目。
通常你给变量a类型(如整型或字符串),但编码器还没有,所以它已默认为变体,其可以采取任何类型的(实质上)。
一旦你这样做:
Set fso = CreateObject("Scripting.FileSystemObject")
然后FSO包含一个位的代码,可以做的东西到文件系统。
Set MyFile = fso.OpenTextFile(FileName, ForReading)
您正在使用FSO功能打开你的“文件名”变量指定文件名,并且已经纳入“MYFILE”变量的引用方式。
所以,你可以然后通过使用MYFILE变量做文件进一步东西。
在“做,而”循环通过该文件的一行的时刻(myfile.readline)读取和每次去圆的时间,并将结果置于所述“一个TextLine”变量,持有不同的线路从该文件的文本的循环,直到该文件结束。
这段代码的想法是逐行读取文件中的行,做的东西每行的内容,你遇到它。你可以打印,记录它,它显示给用户等,为子标题指示!
要诚实面对VB基础知识是必不可少的,为您能够解释这样的代码,所以我会建议找一个在线教程或者一本书。
其他提示
所有该行是做,是定义那些作为变量要在所述代码进一步向下使用
也可参考这个帖子StackOverflow上:什么并DIM代表在Visual Basic和BASIC?
Dim fso, MyFile, FileName, TextLine
此线的定义强>的变量。结果 它这样做的目的,帮助抓捕错别字作为变量在整个脚本中引用。这典型地以串联枝条选项显式强>(通常在脚本的顶部找到)。
用于默认情况下,VBA不需要该变量来定义。人们可以通过使用选项Option Explicit
使得当没有定义特定变量的“未定义的变量”异常产生覆盖此[傻]默认行为。结果
如果没有这个设置,在问题的片断例如,如果在第4行,我们有inadertently错字版名称FileNam,省略E,VBA将着手,有有效的两个变量名和FileNam;以后在节目中,使用,正确地,可变文件名时,一个空值将被使用,从而导致的微妙,很难找到错误强>
这第三线简单地定义它们将在后面使用。 FSO,文件名等仅仅是占位符变量将在后面的代码中使用。 FSO声明,并设置为一个新的文件系统对象。这可能是任何类型的文件系统 - NTFS,FAT等,但它的意思是,你要与系统上的文件进行工作。然后你用它来打开只读指定的文件,并远离其他代码不用。需要使程序知道在何处从读取指定FSO - 无论是一个文件,输入流或一个单独的附加文件系统
我希望会有一些帮助!