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内容,
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态