VB 打开/保存任意编码格式的文本文件

本文介绍了一种使用ADODB.Stream对象在VBA中读取和保存各种编码格式的文本文件的方法。提供了详细的代码示例,展示了如何设置文件编码、打开文件、获取文件内容、保存文件以及处理错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ExpandedBlockStart.gif代码
'--------------------

'类模块:FSO

'SielnceNet@qq.Com

'时间:2008-7-4 15:57:53

'说明:打开/保存任意编码格式的文本文件

'--------------------


Option Explicit

Private FileBody As String '文件内容

Private ErrInfo As String

Private Coding As String



'Dim ADO_Stream As Stream   '使用此项需引用ADO对象

Dim ADO_Stream As Object



'文件打开成功后使用此方法获取文件内容

Public Function GetFileText() As String

    GetFileText 
= FileBody

End Function



'操作失败时。。使用此方法获取错误信息

Public Function GetErrorInfo() As String

    GetErrorInfo 
= ErrInfo

End Function



'打开文件

Public Function OpenFile(ByVal FileName As StringAs Boolean

'FileName:需要打开的文件名



    
If ADO_Stream Is Nothing Then Exit Function



    Err.Number 
= 0

    
On Error GoTo ferr



    
With ADO_Stream

        .Type 
= 1

        .Mode 
= 3

        .Open

        .LoadFromFile FileName

        .Position 
= 0

        .Type 
= 2

        .Charset 
= IIf(Coding = """gb2312", Coding)

        FileBody 
= .ReadText

        .Close

    
End With

    OpenFile 
= True

    

    
Exit Function

ferr:

    ErrInfo 
= FileName & "打开失败!错误信息:" & Err.Description

    Debug.Print ErrInfo

    Err.Number 
= 0

End Function



'保存文件

Public Function SaveFile(ByVal FileName As String, ByVal strFileBody As StringAs Boolean

'FileName:文件保存路径名字

'strFileBody:需要保存的文件内容



    
If ADO_Stream Is Nothing Then Exit Function

    

    Err.Number 
= 0

    
On Error GoTo ferr



    
With ADO_Stream

        .Type 
= 2

        .Mode 
= 3

        .Charset 
= IIf(Coding = """gb2312", Coding)

        .Open

        .WriteText strFileBody

        .SaveToFile FileName, 
2

    
End With

    

    SaveFile 
= True

    
Exit Function

ferr:

    ErrInfo 
= FileName & "保存失败!错误信息:" & Err.Description

    Debug.Print ErrInfo

    Err.Number 
= 0

End Function



Private Sub Class_Initialize()

    Err.Number 
= 0

    
On Error GoTo ferr

    

    
'Set ADO_Stream = New Stream   '使用此项需引用ADO对象

    
Set ADO_Stream = CreateObject("ADODB.Stream")



    
Exit Sub

    

ferr:

    
Set ADO_Stream = Nothing

    ErrInfo 
= "ADODB.Stream对象创建失败!"

    Debug.Print ErrInfo

    Err.Number 
= 0

End Sub



'设置文件编码

'缺省编码为gb2312

Public Property Let SetCoding(ByVal vNewValue As String)

    Coding 
= vNewValue

End Property

 

转载于:https://www.cnblogs.com/lano/archive/2009/12/09/1620095.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值