VBS基础篇 - FileSystemObject对象详解

2019-01-15 19:29:16王冬梅

备注:两者的区别是:Skip——跳过指定的几个字符;SkipLine——跳过一行

二、TextStream对象的属性

TextStream 的属性提供有关文件内文件指针当前位置的信息,如表9所示。注意,所有的属性是只读的。

表10  TextStream 对象的属性及说明

属性

说明

AtEndOfLine

如果文件位置指针在文件中一行的末尾则返回 True

AtEndOfStream

如果文件位置指针在文件的末尾则返回 True

Column

从 1 开始返回文件中当前字符的列号

Line

从 1 开始返回文件中当前行的行号”

AtEndOfLine 和 AtEndOfStream 属性仅对以 iomode 参数为 ForReading 的方式打开的文件可用,否则将会出错。

AtEndOfLine及AtEndOfStream的使用

示例:

Dim strPath,strText strPath = "C:/testing.txt" '调用函数 Call CreateFile(strPath) Sub CreateFile(strPath) Dim objFso,objStream,str '创建FileSystemObject对象 Set objFso = CreateObject("Scripting.FileSystemObject") '以只读的方式打开文件,如果文件不存在则创建它 Set objStream = objFso.OpenTextFile(strPath,1,true) '如果当前的指针不在行末,则读取文本内容 Do While objStream.AtEndOfLine <> true ‘Do While objStream.AtEndOfStream <> true str = str + objStream.Read(1) Loop msgbox str '关闭TextStream对象 objStream.Close End Sub

备注:两者间的区别是:AtEndOfLine——读取到当前文本行的末尾;AtEndOfStream——读取到整个文本的末尾

Column及Line的使用

示例:

Sub TestTextStream(strPath) Dim objFso,objTStream,str Set objFso = CreateObject("Scripting.FileSystemObject") '以只读的方式打开文件 Set objTStream = objFso.OpenTextFile(strPath,1) '如果当前的指针不在整个文档的末尾,读取文本的所有内容 Do While objTStream.AtEndOfStream <> true objTStream.ReadAll str = str + "共有" & objTStream.Line & "行数据,光标最后所在列号为:" & objTStream.Column & vbCrLf Loop '打印信息 print str End Sub

以下是补充资料:

FSO包含的常见对象有:

对象/集合

描述

Drive

包含储存设备的信息,包括硬盘、光驱、ram盘、网络驱动器

Drives

提供一个物理和逻辑驱动器的列表

File

检查和处理文件

Files

提供包含在文件夹内的所有文件的列表

Folder

检查和处理文件夹

Folders

提供在 Folder 内的所有文件夹的列表

TextStream

对象。用来读写文本文件。