在上一节“VBA使用FileSystemObject将读取或写入文本文件(一)”中我们详细介绍了如何创建一个FileSystemObject对象及其对象。那么,在这一节里,将详细介绍FileSystemObject对象在创建或打开文本文件后返回的TextStream对象的一些属性及方法。
三、FileSystemObject对象返回的TextStream对象的属性及方法说明:
创建TextStream对象示例:
Dim sFile As Object, fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set sFile = fso.CreateTextFile("C:/TestFile.txt")
示例中的sFile便为TextStream对象。
(一)TextStream属性:
1、Line属性:只读属性,返回一个TextStream文件中的当前行号。文件初次打开后,在写任何东西之彰,Line的值为1。
语法:object.Line
2、AtEndOfStream属性:只读属性,如果文件指针在TextStream文件末尾,则返回True;否则返回False。
语法:object.AtEndOfStream
3、AtEndOfLine属性:只读属性,如果文件指针在TextStream文件行尾标记的前面,则返回True;否则返回False。
语法:object.AtEndOfLine
(二)TextStream方法:
1、WriteLine方法:写入一个指定的字符和换行符到一个TextStream文件中。
语法:object.WriteLine([string])
Object:必需的。表示一个TextStream对象的名字。
string:可选的。要写入文件的正文。如果省略,一个换行符被写入文件中。
示例:打开一个文本文件并在文本文件中写入一些字符。
Sub WriteLine()
Dim fso As Object, sFile As Object
Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set sFile = fso.OpenTextFile("C:/FSOTest/testfile.txt", ForAppending, TristateFalse)
sFile.WriteLine "WriteLine Test"
sFile.Close
Set fso = Nothing
Set sFile = Nothing
End Sub
2、Write方法:写一个指定的字符串到一个TextStream文件中。指定的字符串被写入到文件中,在每个字符串之间没有插入空格或字符。使用WriteLine方法写入一个换行符或一个以换行符为结尾的字符串。
语法:object.Write(string)
object:必需的。为一个TextStream对象的名字。
string:必需的。要写到文件中的字符串。
示例:下列代码将一个字符串写入到文本文件中,并实现与WriteLine方法相同的效果,即加入空格或换行符。
Sub WriteTest()
Dim fso As Object, sFile As Object
Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set sFile = fso.OpenTextFile("C:/FSOTest/testfile.txt", ForAppending, TristateFalse)
sFile.Write "Write Test" & vbTab & vbCrLf '同时加入一个Tab位及一个换行符
sFile.Close
Set fso = Nothing
Set sFile = Nothing
End Sub
3、ReadLine方法:从一个TextStream文件读取一整行(到换行符但不包括换行符)并返回得到的字符串。
语法:string=object.ReadLine
string:返回的字符串。
object:一个TextStream对象。
示例:打开一个文本文件,并读取内容。
Sub ReadLine()
Dim fso As Object, sFile As Object
Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set sFile = fso.OpenTextFile("C:/FSOTest/testfile.txt", ForReading)
MsgBox sFile.ReadLine
sFile.Close
Set fso = Nothing
Set sFile = Nothing
End Sub
4、Read方法:从一个TextStream文件中读取指定数量的字符并返回得到的字符串。
语法:object.Read(characters)
object:必需的。表示为一个TextStream对象的名字。
characters:必需的。从文件中要读取的字符数。
示例:从一个打开的文本文件中读取5个字符。
Sub ReadTest()
Dim fso As Object, sFile As Object
Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set sFile = fso.OpenTextFile("C:/FSOTest/testfile.txt", ForReading)
MsgBox sFile.Read(5)
sFile.Close
Set fso = Nothing
Set sFile = Nothing
End Sub
5、Close方法:关闭一个打开的TextStream文件。
语法:object.Close
6、WriteBlankLines方法:写入指定数量的换行符到一个TextStream文件中。
语法:object.WriteBlankLines(lines)
object:必需的。指一个TextStream对象的名字。
lines:必需的。要写入的换行符数量。
示例:在一个打开的文本文件中写入两个空行。
Sub WriteBlankLines()
Dim fso As Object, sFile As Object
Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set sFile = fso.OpenTextFile("C:/FSOTest/testfile.txt", ForAppending)
sFile.WriteBlankLines (2)
sFile.Close
Set fso = Nothing
Set sFile = Nothing
End Sub
7、SkipLine方法:当读一个TextStream文件时跳过下一行。跳过一个是指读取放弃一行中的所有字符,一直到并包括该行的换行符。如果读的文件没有打开,则产生一个错误。
语法:object.SkipLine
8、Skip方法:当读一个TextStream文件时跳过指定数量的字符。跳过的字符将不被读取。
语法:object.Skip(characters)
object:必需的。表示一个TextStream对象的名字。
characters:必需的。当读文件时要跳过的字符的数量。
好了。这一节中介绍了TextStream对象的一些属性及方法。到这一节为止,我们就已经基本掌握了在VBA中如何使用FileSystemObject来读写文本文件的方法了。在接下来的一节里,我们将学习如何将文本文件中的数据读取到Excel中,及如何将Excel单元格中的数据写入到指定的文本文件中。