在上一節(jié)“VBA使用FileSystemObject將讀取或?qū)懭胛谋疚募?一)”中我們詳細(xì)介紹了如何創(chuàng)建一個FileSystemObject對象及其對象。那么,在這一節(jié)里,將詳細(xì)介紹FileSystemObject對象在創(chuàng)建或打開文本文件后返回的TextStream對象的一些屬性及方法。
三、FileSystemObject對象返回的TextStream對象的屬性及方法說明:
創(chuàng)建TextStream對象示例:
Dim sFile As Object, fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")Set sFile = fso.CreateTextFile("C:\TestFile.txt")
示例中的sFile便為TextStream對象。
(一)TextStream屬性:
1、Line屬性:只讀屬性,返回一個TextStream文件中的當(dāng)前行號。文件初次打開后,在寫任何東西之彰,Line的值為1。
語法:object.Line
2、AtEndOfStream屬性:只讀屬性,如果文件指針在TextStream文件末尾,則返回True;否則返回False。
語法:object.AtEndOfStream
3、AtEndOfLine屬性:只讀屬性,如果文件指針在TextStream文件行尾標(biāo)記的前面,則返回True;否則返回False。
語法:object.AtEndOfLine
(二)TextStream方法:
1、WriteLine方法:寫入一個指定的字符和換行符到一個TextStream文件中。
語法:object.WriteLine([string])
Object:必需的。表示一個TextStream對象的名字。
string:可選的。要寫入文件的正文。如果省略,一個換行符被寫入文件中。
示例:打開一個文本文件并在文本文件中寫入一些字符。
Sub WriteLine()Dim fso As Object, sFile As ObjectConst ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0Set fso = CreateObject("Scripting.FileSystemObject")Set sFile = fso.OpenTextFile("C:\FSOTest\testfile.txt", ForAppending, TristateFalse)sFile.WriteLine "WriteLine Test"sFile.CloseSet fso = NothingSet sFile = NothingEnd Sub
2、Write方法:寫一個指定的字符串到一個TextStream文件中。指定的字符串被寫入到文件中,在每個字符串之間沒有插入空格或字符。使用WriteLine方法寫入一個換行符或一個以換行符為結(jié)尾的字符串。
語法:object.Write(string)
object:必需的。為一個TextStream對象的名字。
string:必需的。要寫到文件中的字符串。
示例:下列代碼將一個字符串寫入到文本文件中,并實(shí)現(xiàn)與WriteLine方法相同的效果,即加入空格或換行符。
Sub WriteTest()Dim fso As Object, sFile As ObjectConst ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0Set fso = CreateObject("Scripting.FileSystemObject")Set sFile = fso.OpenTextFile("C:\FSOTest\testfile.txt", ForAppending, TristateFalse)sFile.Write "Write Test" & vbTab & vbCrLf '同時加入一個Tab位及一個換行符sFile.CloseSet fso = NothingSet sFile = NothingEnd Sub
3、ReadLine方法:從一個TextStream文件讀取一整行(到換行符但不包括換行符)并返回得到的字符串。
語法:string=object.ReadLine
string:返回的字符串。
object:一個TextStream對象。
示例:打開一個文本文件,并讀取內(nèi)容。
Sub ReadLine()Dim fso As Object, sFile As ObjectConst ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0Set fso = CreateObject("Scripting.FileSystemObject")Set sFile = fso.OpenTextFile("C:\FSOTest\testfile.txt", ForReading)MsgBox sFile.ReadLinesFile.CloseSet fso = NothingSet sFile = NothingEnd Sub
4、Read方法:從一個TextStream文件中讀取指定數(shù)量的字符并返回得到的字符串。
語法:object.Read(characters)
object:必需的。表示為一個TextStream對象的名字。
characters:必需的。從文件中要讀取的字符數(shù)。
示例:從一個打開的文本文件中讀取5個字符。
Sub ReadTest()Dim fso As Object, sFile As ObjectConst ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0Set fso = CreateObject("Scripting.FileSystemObject")Set sFile = fso.OpenTextFile("C:\FSOTest\testfile.txt", ForReading)MsgBox sFile.Read(5)sFile.CloseSet fso = NothingSet sFile = NothingEnd Sub
5、Close方法:關(guān)閉一個打開的TextStream文件。
語法:object.Close
6、WriteBlankLines方法:寫入指定數(shù)量的換行符到一個TextStream文件中。
語法:object.WriteBlankLines(lines)
object:必需的。指一個TextStream對象的名字。
lines:必需的。要寫入的換行符數(shù)量。
示例:在一個打開的文本文件中寫入兩個空行。
Sub WriteBlankLines()Dim fso As Object, sFile As ObjectConst ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0Set fso = CreateObject("Scripting.FileSystemObject")Set sFile = fso.OpenTextFile("C:\FSOTest\testfile.txt", ForAppending)sFile.WriteBlankLines (2)sFile.CloseSet fso = NothingSet sFile = NothingEnd Sub
7、SkipLine方法:當(dāng)讀一個TextStream文件時跳過下一行。跳過一個是指讀取放棄一行中的所有字符,一直到并包括該行的換行符。如果讀的文件沒有打開,則產(chǎn)生一個錯誤。
語法:object.SkipLine
8、Skip方法:當(dāng)讀一個TextStream文件時跳過指定數(shù)量的字符。跳過的字符將不被讀取。
語法:object.Skip(characters)
object:必需的。表示一個TextStream對象的名字。
characters:必需的。當(dāng)讀文件時要跳過的字符的數(shù)量。
好了。這一節(jié)中介紹了TextStream對象的一些屬性及方法。到這一節(jié)為止,我們就已經(jīng)基本掌握了在VBA中如何使用FileSystemObject來讀寫文本文件的方法了。在接下來的一節(jié)里,我們將學(xué)習(xí)如何將文本文件中的數(shù)據(jù)讀取到Excel中,及如何將Excel單元格中的數(shù)據(jù)寫入到指定的文本文件中。