转载]VBA使用FileSystemObject将读取或写入文本文件
(2011-04-28 08:47:34)
转载▼
标签:
转载
原文地址:VBA使用FileSystemObject将读取或写入文本文件作者:添成
VBA使用FileSystemObject将读取或写入文本文件
 
原文链接:
space.itpub/?viewspace-662523
space.itpub/?viewspace-662526
blog.csdn/wengene/archive/2010/08/12/5806500.aspx
在网上到一样的版本,所以就都列在这里
***********************************************************************************
***************************      **********************************************
***********************************************************************************
有时,我们需要将一个文本文件中的数据读取到Excel单元格中,或将指定单元格的内容按指定的格式导出到文本文件中,这时,我们就需要使用Scripting.FileSystemObject对象来进行操作。在接下来的几篇里我们介绍如何使用FileSystemObject对象操作文本文件的。工欲善其事,必先利其器,那么我们就先花几篇文章来详细介绍下FileSystemObject对象。
一、如何创建FileSystemObject对象
VBA中,是通过CreateObject函数返回FileSystemObject对象。
示例:
Dim fso As Object
Set fso=CreateObject("Scripting.FileSystemObject")
二、FileSystemObject主要方法介绍
    1CreateTextFile方法:用于创建一个指定文件名,并返回一个可操作的TextStream对象。
语法:object.CreateTextFile(filename[,overwrite[,unicode]])
参数
说明
object
必需的。为一个FileSystemObject对象的名字
filename
必需的,一个带路径的字符串表达式,为创建的文件
overwrite
可选的。Boolean值,如果为True表示覆盖已存在的文件,False表示不能覆盖。默认值为False
unicode
可选的。Boolean值,表示文件是作为一个Unicode文件创建的还是作为一个ASCII文件创建的。如果为True则表示作为Unicode文件创建,False表示作为ASCII文件创建。默认值为False
示例1:在C:FSOTest中创建一个名为testFile的文本文件,并写入一行CreateTextFile Test
”:
Sub CreateFile()
    Dim sFile As Object, FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set sFile = FSO.CreateTextFile("",True)
    sFile.WriteLine ("CreateTextFile Test")
    sFile.Close
    Set sFile = Nothing
    Set FSO = Nothing
End Sub
 
  2DeleteFile方法:用于删除一个指定的文件。如果指定的文件不存在,则返回一个错误信息。
语法:object.DeleteFile(filespec[,force])
参数
说明
object
必需的。为一个FileSystemObject对象
filespec
必需的。要删除文件的名字。可以在最后的路径部件中包含通配符
force
可选的。Boolean值,如果要删除具有只读属性设置的文件,则为True。如果不能删除具有只读属性设置的文件,则为False。默认值为False
示例2:删除示例1中创建的文本文件。
Sub DeleteFile()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.DeleteFile ("")
End Sub
 
  3FileExists方法:判断指定的文件是否存在。如果存在,则返回True,若不存在,则返回False
语法:object.FileExists(filespec)
参数
说明
object
必需的。为一个FileSystemObject对象
filespec
必需的。要确定是否存在的文件名。如果认为文件不在当前文件夹中,必须提供一个带完整的路径说明。
示例3:判断C:FSOTest”中是否存在文件”:
Sub FileExist()
    Dim fso As Object, blnExist As Boolean
    Set fso = CreateObject("Scripting.FileSystemObject")
    blnExist = fso.FileExists("")
    MsgBox blnExist
End Sub
 
    4OpenTextFile方法:打开一个指定的文件并返回一个TextStream对象,该对象可能于对文件进行读操作或追加操作。
语法:object.OpenTextFile(filename[,iomode[,create[,format]]])
参数
说明
object
必需的。始终是一个 FileSystemObject 的名字
filename
必需的。为一个文件名,包含完整路径说明
iomode
可选的。表示输入/输出方式。可为两个常数之一:ForReading ForAppending
create
可选的。Boolean 值,它表示如果指定的 filename 不存在是否可以创建一个新文件。如果创建新文件,其值为 True。若不创建文件其值为 False。缺省值为 False
format
可选的。三种 Tristate 值之一,用于指示打开文件的格式。如果省略,则文件以 ASCII 格式打开。
参数iomode可以设置为以下值:
常数
说明
ForReading
1
打开一个只读文件。不能对此文件进行写操作
ForWriting
2
writeline方法的作用打开一个可读写操作的文件,并删除原有文本内容
ForAppending
8
打开一个文件并写到文件的尾部
参数format可以设置为以下值:
常数
说明
TristateUseDefault
-2
使用系统缺省打开文件
TristateTrue
-1
Unicode格式打开文件
TristateFalse
0
ASCII格式打开文件
示例4:本例说明了使用OpenTextFile方法打开文件,并添加文字OpenTextFile Test”:
Sub OpenTextFile()
    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("", ForAppending, TristateFalse)
    sFile.Write "OpenTextFile Test"
    sFile.Close
    Set fso = Nothing
    Set sFile = Nothing
End Sub
 
在上一节VBA使用FileSystemObject将读取或写入文本文件(一)中我们详细介绍了如何创建一个FileSystemObject对象及其对象。那么,在这一节里,将详细介绍FileSystemObject对象在创建或打开文本文件后返回的TextStream对象的一些属性及方法。
三、FileSystemObject对象返回的TextStream对象的属性及方法说明:
创建TextStream对象示例:
Dim sFile As Object, fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set sFile = fso.CreateTextFile("")
 
 
示例中的sFile便为TextStream对象。
    ()TextStream属性:
    1Line属性:只读属性,返回一个TextStream文件中的当前行号。文件初次打开后,在写任何东西之彰,Line的值为1
语法:object.Line
    2AtEndOfStream属性:只读属性,如果文件指针在TextStream文件末尾,则返回True;否则返回False
语法:object.AtEndOfStream
    3AtEndOfLine属性:只读属性,如果文件指针在TextStream文件行尾标记的前面,则返回True;否则返回False
语法:object.AtEndOfLine
    ()TextStream方法:
    1WriteLine方法:写入一个指定的字符和换行符到一个TextStream文件中。
语法:object.WriteLine([string])
Object:必需的。表示一个TextStream对象的名字。
string:可选的。要写入文件的正文。如果省略,一个换行符被写入文件中。

示例:打开一个文本文件并在文本文件中写入一些字符。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。