木子屋 Dnawo's BLOG

ASP用ADODB.Stream代替FSO读写文本文件

👤 dnawo 📅 2010-10-20 👁 5904 👍 0 💬 0 🔄 本站原创
在ASP中,我们常用Scripting.FileSystemObject组件来读写文本文件,但它有一个缺点是对编码支持不足,比如我们想读写一个utf-8文本文件,FSO就很难办到了,这时我们就需要使用Adodb.Stream组件来代替它:

<%
'读取文件
Function ReadFile(ByVal strFile, ByVal strEncode)
    Dim objStream
    On Error Resume Next
    Set objStream = Server.CreateObject("ADODB.Stream")
    If Err.Number=-2147221005 Then 
        ReadFile = "ADODB.Stream对象创建失败!"
        Err.Clear
        Exit Function
    End If
    With objStream
        .Type = 2
        .Mode = 3
        .Open
        .LoadFromFile Server.MapPath(strFile)
        If Err.Number<>0 Then
			ReadFile = strFile & "打开失败!"
			Err.Clear
			Exit Function
        End If
        .Charset = strEncode
        .Position = 2
        ReadFile = .ReadText
        .Close
    End With
    Set objStream = Nothing
End Function

'写入文件
Sub WriteFile(ByVal strFile, ByVal strBody, ByVal strEncode)
    Dim objStream
    On Error Resume Next
    Set objStream = Server.CreateObject("ADODB.Stream")
    If Err.Number=-2147221005 Then 
        Response.Write "ADODB.Stream对象创建失败!"
        Err.Clear
        Exit Sub
    End If
    With objStream
        .Type = 2
        .Open
        .Charset = strEncode
        .Position = objStream.Size
        .WriteText = strBody
        .SaveToFile Server.MapPath(strFile),2
        .Close
    End With
    Set objStream = Nothing
End Sub
%>

调用示例

<%
WriteFile "aaa.txt", "www.mzwu.com", "utf-8"
Response.Write ReadFile("aaa.txt", "utf-8")
%>

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 ASP同一站点下gb2312和utf-8页面传递参数乱码终极解决… 下一篇 → Firefox查看框架源代码