asp下用ADODB.Stream代替FSO读取文本文件
在ASP环境中,我们常常使用Scripting.FileSystemObject组件来读写文本文件。该组件对于编码的支持并不充分,尤其是当我们试图读写UTF-8格式的文本文件时,它就显得力不从心。为了解决这个问题,我们引入了Adodb.Stream组件,它为我们提供了更为强大的文件操作能力。
让我们首先来看一下如何使用Adodb.Stream来读取文件内容。当我们在服务器上创建一个新的Adodb.Stream对象时,如果服务器不支持这个对象,我们会向用户展示一条友好的错误信息。接着,我们打开流并加载要读取的文件。如果文件无法打开或不存在,我们也会及时通知用户。然后,我们将字符集设置为GB2312,并将位置指针移动到文件的开始处。我们读取文本内容并将其关闭。以下是具体的代码实现:
```vbscript
Function LoadFile(ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number = - Then
Response.Write "
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Mode = 3
.Open
.LoadFromFile Server.MapPath(File)
If Err.Number <> 0 Then
Response.Write "
Err.Clear
Response.End
End If
.Charset = "GB2312"
.Position = 2
LoadFile = .ReadText
.Close
End With
Set objStream = Nothing
End Function
```
接下来是保存内容到文件的操作。同样地,我们首先检查服务器是否支持Adodb.Stream组件。然后,我们创建一个新的流对象,设置其类型和字符集,并将位置指针移动到文件的末尾。接着,我们将文本内容写入流中,然后将流保存到指定的文件中。以下是具体的代码实现:
```vbscript
Sub SaveToFile(ByVal strBody, ByVal File)
Dim objStream
On Error Resume Next
Set objStream = Server.CreateObject("ADODB.Stream")
If Err.Number = - Then
Response.Write "
Err.Clear
Response.End
End If
With objStream
.Type = 2
.Open
.Charset = "GB2312"
.Position = objStream.Size
.WriteText = strBody
.SaveToFile Server.MapPath(File), 2
.Close
End With
Set objStream = Nothing
End Sub
```
你可以通过调用示例代码来使用这两个函数。例如,你可以使用WriteFile函数将内容写入一个名为"aaa.txt"的文件,然后使用ReadFile函数读取该文件的内容并显示在网页上。示例代码如下:
```asp
WriteFile "aaa.txt", ".jb51.", "utf-8"
Response.Write ReadFile("aaa.txt", "utf-8")
```
编程语言
- asp下用ADODB.Stream代替FSO读取文本文件
- PHP中单引号与双引号的区别分析
- 用JS动态改变表单form里的action值属性的两种方法
- 微信小程序适配iphoneX的实现方法
- PHP ADODB实现分页功能简单示例
- PHP基于数组实现的分页函数实例
- PHP实现的限制IP投票程序IP来源分析
- Nodejs调用WebService的示例代码
- 微信小程序开发背景图显示功能
- jquery+php实现导出datatables插件数据到excel的方法
- 使用jquery获取url以及jquery获取url参数的实现方法
- JS中script标签defer和async属性的区别详解
- Thinkphp搜索时首页分页和搜索页保持条件分页的方
- 解析利用javascript如何判断一个数为素数
- js生成word中图片处理方法
- ASP中一个用VBScript写的随机数类