漫游的备忘录
ADODB.Stream读写文件ASP示例
2012-3-16 漫游
    Function ReplaceText(fString, patrn, replStr)

        Set regEx = New RegExp

        regEx.Pattern = patrn

        regEx.IgnoreCase = True

        regEx.Global = True

        ReplaceText = regEx.Replace(fString, replStr)

    End Function

   

    Function LoadFile(ByVal File)

        Dim objStream

        'On Error Resume Next

        Set objStream = Server.CreateObject("ADODB.Stream")

        If Err.Number=-2147221005 Then

        Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"

        Err.Clear

        Response.End

        End If

        With objStream

        .Type = 2

        .Mode = 3

        .Charset = "utf-8"

        .Open

        .LoadFromFile Server.MapPath(File)

        If Err.Number<>0 Then

        Response.Write "<div align='center'>文件<font color='#ff0000'>"&File&"</font>无法被打开,请检查是否存在!</font></div>"

        Err.Clear

        Response.End

        End If

        .Position = 2

        LoadFile = .ReadText

        .Close

        End With

        Set objStream = Nothing

    End Function

   

    '存储内容到文件

    Sub SaveToFile(ByVal strBody,ByVal File)

        Dim objStream

        'On Error Resume Next

        Set objStream = Server.CreateObject("ADODB.Stream")

        If Err.Number=-2147221005 Then

        Response.Write "<div align='center'>非常遗憾,您的主机不支持ADODB.Stream,不能使用本程序</div>"

        Err.Clear

        Response.End

        End If

        With objStream

        .Type = 2

        .Charset = "utf-8"

        .Open

        .Position = objStream.Size

        .WriteText = strBody

        .SaveToFile Server.MapPath(File),2

        .Close

        End With

        Set objStream = Nothing

    End Sub

   

    '读取模板的xml文件,其它类型文件一样的处理

    templet = LoadFile("/Model.xml")

    templet = Replace (templet,vbcrlf,"$%^&")    '换行要替换成替代字串,否则下面会执行出错

    'response.write templet

    str = "<channel>" & vbcrlf

    str = str & "......"

    str = str & "    </channel>"

    templet = ReplaceText(templet, "<channel>.*?<\/channel>" , str)

    templet = replace(templet, "$%^&", vbcrlf)    '替换回换行

    'response.write templet

    SaveToFile templet, "/result.xml"