首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FSO对象操作txt文件

FSO对象操作

txt

在我们日常使用Excel的时候,不仅会用到当前Excel文件的数据,还经常需要访问其他的数据文件。比如这节课要讲的txt文本文件。

操作txt除了常规VBA文件处理语句open、write等方法,还有一种方法是使用FSO对象来操作。

那么什么是FSO对象呢?

FileSystemObject文件系统对象简称FSO,和字典一样,FSO也在Scripting 类型库 (Scrrun.Dll)中,FSO对象同时包含了Drive、Folder、File、FileSystem Object和TextStream五个对象,在VBA中对FSO对象下的驱动器、文件夹、文件的读取,写入、新建、复制、移动、删除等操作。让excel VBA的功能更加的强大。

这节课我们介绍FSO对象中操作TXT文本文件(TextStream文本流)的一些方法

1

引用FSO

因为FSO和字典一样,也在Scripting 类型库 (Scrrun.Dll)中,不属于VBA的范畴,使用之前我们需要引用。

FSO对象引用的方法:

前期绑定:先要引用类库文件scrrun.dll,工具引用勾选“Microsoft Scripting Runtime”,写代码的时候有智能提示。如果程序发给别人用,就要用后期绑定方式。

Dim fso As New Scripting.FileSystemObject

后期绑定:不需要引用类库文件,但没有智能提示。

Set fso = CreateObject("Scripting.FileSystemObject")

2

FSO创建、打开txt的方法

CreatTextFile方法

CreatTextFile语法:object.CreateTextFile(filename[, overwrite[, unicode]])。

filename:要创建的文件的全路径,字符串。

overwrite:Bool值,如果相同路径存在同名文件,是否覆盖。

unicode:Bool值,用什么编码写入文件,默认是ASCII(true),也可以是unicode

CreatTextFile方法返回值是TextStream文本流类型对象,也就是本文的另一个重点,文本流

文本流

1.本文标题虽然是FSO,但读取和写入文件实际使用的都是TextStream的对象。

‍‍

2.文本流有几个不同的读取和写入方法(如上所述要注意和流的类型相匹配,否则会在运行时报错)。

3、文本流还有一些实用的属性。

AtEndOfLine: 文件指针正好在行尾标记,则返回TRUE

AtEndOfStream: 文件指针在文件末尾,则返回TRUE

Line: 返回一个 TextStream 文件中的当前行号。

Column: 返回 TextStream 文件中当前字符位置的列号。

CreateTextFile方法代码示例:

Sub test()

Dim fso As Object

Dim fstxt As Object

Set fso = CreateObject("Scripting.FileSystemObject")'后期绑定

Set fstxt = fso.CreateTextFile("d:\test.txt", True)'用FSO对象创建一个文本流用于写入内容

fstxt.WriteLine (Now)'用文本流的WriteLine方法,把本机的时间写入文件。

fstxt.Close'Colse方法关闭流。

End Sub

使用OpenTextFile方法

这个方法的功能很多,可以读、写、追加写入。如果目标文件不存在还可以根据需求创建文件。OpenTextFile方法方法返回值也是TextStream文本流类型对象。

语法:object.OpenTextFile(filename[, iomode[, create[, format]]])

filename:要创建的文件的全路径,字符串。

iomode:常数。ForReading读取、ForWriting写入,ForAppending在文件末尾追加写入

create:Bool值,如果文件不存在,是否创建。 默认是False不创建。

format:以什么编码形式打开文件

OpenTextFile方法代码示例:

Sub OpenTextAndWriteRead()

Dim fso As Object

Dim rfsm As ObjectDim wfsm As Object

Dim str As String

Set fso = CreateObject("Scripting.FileSystemObject")'后期绑定

'创建一个流用来写入

Set wfsm = fso.OpenTextFile("d:\test.txt", forappending)

n = 1

Do

wfsm.WriteLine ("第" & n & "行:" & Now)

n = n + 1 Loop Until n = 11

wfsm.Close'关闭文本流

'打开一个流用来读取

Set rfsm = fso.OpenTextFile("d:\test.txt", 1)

Do

str = rfsm.ReadLine

Debug.Print str

Loop Until rfsm.AtEndOfLine'判断是否到了末尾行号

rfsm.Close

End Sub

'

从以上代码可以看到,OpenTextFile方法不仅可以打开txt文件,在没有txt文件的时候,还能自动创建。因此OpenTextFile方法比CreateTextFile方法更强大。

好了,FSO对象操作txt文本文件的基础知识就分享到这里,具体FSO实例,我们下节课在讲解。

欢迎收藏、点赞、转发。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180205G13HLM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券