分享

VBA使用FileSystemObject将读取或写入文本文件(二) — Windows Live

 爱睡觉的猫 2011-03-27

VBA使用FileSystemObject将读取或写入文本文件(二)

    在上一节“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 单元格中的数据写入到指定的文本文件中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多