adTypeText =2
-----------------------------------------------------------------------------------------------------------------------------------
Adodb.Stream 对象用于二进制数据流或文本流的读写和管理
带 ?? 是未理解的参数,可能是在网页代码中使用的
属性
Charset 字符集。默认为 Unicode 。全部字符集见附录
EOS 对象数据是否为空,返回值True|False
LineSeparator 分行符。默认值为-1,回车换行符
Mode 读写权限。初始值为 0
Position 光标位置。初始值为 0
Size 对象的大小
State 对象的状态
Type 数据类型。默认值为2,文本型
方法
Cancel 取消执行挂起的异步 Execute 或 Open 方法的调用 ??
Close 关闭对象
CopyTo 从源对象光标位置,复制数据到目标对象
Flush 把缓冲区中的内容发送到相关联的下层对象 ??
LoadFromFile 载入文件。需先打开对象
Open 打开对象
Read 读取二进制数据,并相应移动光标位置
ReadText 读取文本数据,并相应移动光标位置
SaveToFile 把对象的数据保存为文件
SetEOS 设置当前光标位置为数据的结尾
SkipLine 在读取一个文本流时跳过一行,并相应移动光标位置
Write 写入二进制数据,并相应移动光标位置
WriteText 写入文本数据,并相应移动光标位置
Adodb.Stream 对象在 vbs 里一般用于和 Msxml2.Xmlhttp 对象一起下载文件
也可用于处理文本
-----------------------------------------实例-----------------------------------------------------
Dim objAdodbStream, objAdodbStream2, strRead, binRead, intNumber
Set objAdodbStream = CreateObject("Adodb.Stream")
intNumber = objAdodbStream.State '返回对象的状态
Const adStateClosed = 0 '对象已关闭
Const adStateOpen = 1 '对象已打开
Const adStateConnecting = 2 '对象正在连接 ??
Const adStateExecuting = 4 '对象正在执行命令 ??
Const adStateFetching = 8 '正在检索对象的行 ??
strRead = objAdodbStream.Charset '返回当前字符集
objAdodbStream.Charset = "CN-GB" '设置字符集为CN-GB,也就是简体中文
intNumber = objAdodbStream.LineSeparator '返回当前分行符。默认值为 -1
objAdodbStream.LineSeparator = 13|-1|10 '设置分行符
Const adCR = 13 '回车
Const adCRLF = -1 '回车换行
Const adLF = 10 '换行
intNumber = objAdodbStream.Type '返回当前数据类型。默认为 2
objAdodbStream.Type = 1|2 '设置数据类型
Const adTypeBinary = 1 '二进制
Const adTypeText = 2 '文本
intNumber = objAdodbStream.Mode '返回当前读写权限。初始值为 0
objAdodbStream.Mode = 1|2|3 '设置读写权限
Const adModeUnknown = 0 '当前的权限未设置
Const adModeRead = 1 '只读
Const adModeWrite = 2 '只写
Const adModeReadWrite = 3 '读写
Const adModeShareDenyRead = 4 '阻止其他用户使用读权限打开 ??
Const adModeShareDenyWrite = 8 '阻止其他用户使用写权限打开 ??
Const adModeShareExclusive = 12 '阻止其他用户打开 ??
Const adModeShareDenyNone = 16 '允许其他用户使用任何权限打开??
Const adModeRecursive = 4194304 '用4|8|16权限设置子记录的权限??
objAdodbStream.Open Source,[Mode],[Options],[UserName],[Password] '打开对象
'Open 方法的参数用法未知
'Sourece 对象源,可不指定 ??
'Options 指定打开的选项,可不指定,可选参数如下: ??
Const adOpenStreamAsync = 1
Const adOpenStreamFromRecord = 4
Const adOpenStreamUnspecified = -1
'UserName 指定用户名,可不指定 ??
'Password 指定用户名的密码 ??
intNumber = objAdodbStream.Size '返回对象的大小
objAdodbStream.LoadFromFile "D:\test.txt" '载入文件
intNumber = objAdodbStream.Position '返回当前光标位置,初始值为 0
objAdodbStream.Position = 2 '设置光标位置
'设置光标位置。必须以读写权限打开文件 .Mode = 3
objAdodbStream.SkipLine '在读取一个文本流时跳过一行
strRead = objAdodbStream.ReadText(3) '读取文本数据
'从当前光标位置处,读取3个字节的文本数据。不指定字节数则读取全部
objAdodbStream.WriteText "abc", 0|1 '写入文本数据
'从当前光标位置处,覆盖写入(注意不是插入)文本数据。回车换行算2个字符
Const adWriteChar = 0 '仅插入指定的数据。缺省值
Const adWriteLine = 1 '插入数据后,回车换行
binRead = objAdodbStream.Read(3) '读取二进制数据
'从当前光标位置处,读取3个字节的二进制数据。不指定字节数则读取全部
objAdodbStream.Write binRead '写入二进制数据
'从当前光标位置处,覆盖写入(注意不是插入)二进制数据。回车换行算2个字符
objAdodbStream.SetEOS '设置当前光标位置为数据的结尾
objAdodbStream.SaveToFile "D:\test1.txt", 1|2 '把对象的数据保存为文件
Const adSaveCreateNotExist = 1 '不覆盖已有文件。缺省值
Const adSaveCreateOverWrite = 2 '覆盖已有文件
blnYN = objAdodbStream.EOS '对象数据是否为空
'对象数据是否为空,返回True|False。需打开对象
'Open 后为 True
'Write 后还是为 True,即使这时 Size > 0
'SaveToFile 后才为 False
Set objAdodbStream2 = CreateObject("Adodb.Stream")
With objAdodbStream2
.Charset = "CN-GB"
.type = 2
.mode = 3
.open
objAdodbStream.CopyTo objAdodbStream2, 3
'从objAdodbStream光标位置复制3个字节的数据到objAdodbStream2。不指定则全部复制
.SaveToFile "D:\test2.txt", 2
End With
objAdodbStream.Close '关闭对象
-------------------一个实例,和 Msxml2.Xmlhttp 对象一起下载文件-------------------------
Dim objMsxml2Xmlhttp, objAdodbStream, strUrl, BinTemp
Set objMsxml2Xmlhttp = CreateObject("Msxml2.Xmlhttp")
Set objAdodbStream = CreateObject("Adodb.Stream")
strUrl = "http://www.baidu.com/img/baidu_sylogo1.gif"
With objMsxml2Xmlhttp '下载数据
.Open "get", strUrl, False
.Send
BinTemp = .ResponseBody
End With
With objAdodbStream '保存为文件
.Type = 1
.Mode = 3
.Open
.Write BinTemp
.SaveToFile "D:\baidu_sylogo1.gif"
.Close
End With