VB打开/保存任意编码格式文本文件/
刚吃饭见论坛有人使用FSO对象保存UTF-8格式的文本文件。。顺便写了一个类。。属于俺们VB的FSO类
'--------------------
'类模块: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(FileName As String) As 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(FileName As String, strFileBody As String) As 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
'Form代码 '使用方法。。添加两个按钮。。一个文本框。。使用默认名字 Option Explicit Const F = "E:/System Files/桌面/偶偶.txt" '需要打开的文件路径 Const F2 = "E:/System Files/桌面/偶偶2.txt" '保存的文件路径 Dim FSO1 As New FSO Private Sub Command1_Click() If FSO1.OpenFile(F) Then Text1.Text = FSO1.GetFileText Else MsgBox FSO1.GetErrorInfo End If End Sub Private Sub Command2_Click() If FSO1.SaveFile(F2, Text1.Text) Then MsgBox "文件保存成功!" Else MsgBox FSO1.GetErrorInfo End If End Sub Private Sub Form_Load() FSO1.SetCoding = "UTF-8" End Sub