大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说filesystemobject(vba中filesystemobject),希望您对编程的造诣更进一步.
二、使用FileSystemObject操作文件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
在VBA中有时会需要操作一些普通文件和文件夹。存在着很多操作的方法。这里介绍一种较为全面且简单的操作方法。FileSystemObject —- 文件系统对象。
FileSystemObject对象位于Scripting脚本内,定位于
后期绑定:
调用FileSystemObject.OpentTextFile()方法将打开指定的文件,并返回该文件的TextStream(文本流)对象,对象浏览器中写的介绍是:
FileName: 要打开的文件地址。
IOMode:它的同名值IOMode是一个枚举类型对象,代表打开文件的模式。其中:
Create:文件不存在时是否自动按照所给文件地址创建新文件。默认为false = 否。
Format:它的值Tristate也是枚举对象。指定打开文件时所使用的字符集。有:
调用FileSystemObject.CreateTextFile()方法将创建指定的文件,并返回该文件的TextStream(文本流)对象,对象浏览器中写的介绍是:
FileName: 要创建的文件地址。
Overwrite:若文件已存在是否覆盖的选项。默认为true = 覆盖已存在文件。
Unicode:创建文件时使用unicode还是ASCII字符集。默认为false = 使用ASCII字符集;true = 使用unicode字符集。
使用FileSystemObject操作文件,最终以操作文本流对象(TextStream)的形式实现。
TextStream提供一个只读的文件指针,供使用者判断当前文件读取的位置。无论之前对文件进行什么读写操作,对于新打开的文件,文件指针都位于第一个字符前(这将导致始终从第一个字符开始读取),即Column = 1; Line = 1。
TextStream提供了四个只读属性,我们可以通过这四个只读属性很方便的判断文件指针的状态:
Column:返回 TextStream 文件中当前的列号。
Line:返回 TextStream 文件中当前的行号。
AtEndOfLine:如果文件指针紧接在 TextStream 文件的行尾标记(即换行符)之前,则返回 true;否则返回 false。
AtEndOfStream:如果文件指针位于 TextStream 文件的末尾(文件末尾是不存在任何隐藏符号的),则返回 true;否则返回 false。
TextStream提供了两个过程(Sub)来操作文件指针(只能从前往后):
通过跳过字符的方式,可以实现单向的移动文件指针。当然,单纯的读取操作,也会单向移动文件指针,这取决于你的需求。
想要能够读取文件的内容必须以ForReading的模式打开(ForWriting和ForAppending都不行)。这里再重申一遍,每次打开文件,都将从头开始读取。
TextStream提供了三个方法来读取文件:
想要写入内容,必须以ForWriting 或 ForAppending的模式打开文件。在这两种模式下写入相同的内容将产生不同的效果。
ForWriting:先清空文件中原有的所有内容,在重新写入指定的内容。相当于用新文件替换了旧文件。文件指针位于文件开头。
ForAppending:从文件的末尾开始写入内容。文件指针位于文件末尾。由于无法前移文件指针,在这个模式下仍然不支持文件指针的自主移动。只能始终处于文件末尾。
因为在这两种写模式下,文件指针始终处于文件末尾。因此,四个只读属性中AtEndOfLine,AtEndOfStream将不再具有获取的意义,将无法获得值。而Line和Column则可以正常获得值。
TextStream提供了三个过程(Sub)来向文件中写入内容:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/23604.html