VBA 读写文本文件的几种方法

 2023-09-07 阅读 19 评论 0

摘要:1、直接采用Open函数+Line input命令 Private Sub txt_read()Dim txt As StringOpen "D:\dzh.txt" For Input As #1 ''对文件做任何 I/O 操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进行 I/O 之用,'并决定缓冲区所使用的访问方式

1、直接采用Open函数+Line input命令

Private Sub txt_read()Dim txt As StringOpen "D:\dzh.txt" For Input As #1 ''对文件做任何 I/O 操作之前都必须先打开文件。Open 语句分配一个缓冲区供文件进行 I/O 之用,'并决定缓冲区所使用的访问方式。'打开文件作为数据输入用,文件号为#1Do While Not EOF(1)Line Input #1, txt  '从已打开的顺序文件中读出一行并将它分配给 String 变量'Line Input # 语句一次只从文件中读出一个字符,直到遇到回车符 (Chr(13))'或回车–换行符 (Chr(13) + Chr(10)) 为止。回车–换行符将被跳过,而不会被附加到字符串上MsgBox txtLoopClose #1
End Sub


2、利用FileSystemObject对象(引用windows script host object model)

Sub TextStreamTest()'**如果引用“windows script host object model”,可以定义如下的数据类型,编程更方便!!!!*******Dim fs As FileSystemObject, f As File, ts As TextStream, s As String'打开一个只读文件,不能对此文件进行写操作/'打开一个用于写操作的文件。如果和此文件同名的文件已存在,则覆盖以前内容/'打开一个文件并写到文件的尾部Const ForReading = 1, ForWriting = 2, ForAppending = 8'使用系统缺省打开文件/以 Unicode 格式打开文件/以 ASCII 格式打开文件Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0'Dim fs, f, ts, sSet fs = CreateObject("Scripting.FileSystemObject")'FileSystemObject 对象提供对计算机文件系统的访问'下面FileSystemObject.CreateTextFile 返回一个 TextStream 对象,该对象是可读并可写的:On Error Resume Next  '如果文件存在,下个命令会出错!获得文件fs.CreateTextFile("test1.txt", False).WriteLine ("This is a test.") '创建一个文件,返回一个用于该文件读写的TextStream对象Set f = fs.GetFile("test1.txt")          '返回一个和指定路径中文件相对应的 File 对象'错误!f.WriteLine ("This is a test.")          '向创建的文本文件中写入一行文本,非TextStream对象,错误!!Set ts = f.OpenAsTextStream(ForAppending, TristateUseDefault) '打开一个指定的文件并返回一个 TextStream 对象'OpenAsTextStream 方法提供了和 FileSystemObject. 的 OpenTextFile 方法相同的功能/'此外,OpenAsTextStream 方法还可以用于对一个文件进行写操作。ts.Write "Hello World"ts.CloseSet ts = f.OpenAsTextStream(ForReading, TristateUseDefault)Do While Not ts.AtEndOfStreams = ts.ReadLineMsgBox sLoopts.Close
End Sub


网页另存为文本文件。附:自定义类模块——含多个文件处理函数

定义FileOperation类

Private objTS As TextStream  ' 定义TextStream对象Public Function OpenFile(strFileName As String, strMode As String)Dim objFSO As FileSystemObject ' 定义文件对象Set objFSO = New FileSystemObjectSet objTS = NothingIf strMode = "R" Then' 读取方式打开文件Set objTS = objFSO.OpenTextFile(strFileName, ForReading, True)End IfIf strMode = "W" Then' 写入方式打开文件Set objTS = objFSO.OpenTextFile(strFileName, ForWriting, True)End If
End FunctionPublic Function CloseFile()' 关闭文件objTS.Close
End FunctionPublic Function GetLine() As String' 按行读取文件数据GetLine = objTS.ReadLine
End FunctionPublic Property Get AtEndOfFile() As Boolean' 判断是否已到文件末尾AtEndOfFile = objTS.AtEndOfStream()
End PropertyPublic Function WriteLine(strData As String)' 向文件写入一条数据objTS.WriteLine (strData)
End FunctionPublic Function SkipLines(intLines As Integer)Dim i As Integer' 跳到指定数据行,如指定行超过总行数,则指定到末尾行' 一般结合文件末尾判断函数以及读取函数使用For i = 1 To intLinesIf objTS.AtEndOfStream ThenExit ForEnd IfobjTS.SkipLineNext i
End Function

测试

Sub Run()Dim objTXTFO As FileOperationSet objTXTFO = New FileOperationobjTXTFO.OpenFile "D:\dzh.txt", "R"Do While Not (objTXTFO.AtEndOfFile)MsgBox objTXTFO.GetLineLoopobjTXTFO.CloseFile
End Sub

vba读取word内容,

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/13641.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息