VBS之adodb.stream对象的方法/属性

adodb.stream对象的方法/属性

Cancel 方法
使用方法如下
Object.Cancel
说明:取消执行挂起的异步 Execute 或 Open 方法的调用。
Close 方法
使用方法如下
Object.Close
:关闭对像
CopyTo 方法
使用方法如下
Object.CopyTo(destStream,[CharNumber])
说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。
Flush 方法
使用方法如下
Object.Flush
说明:
LoadFromFile 方法
使用方法如下
Object.LoadFromFile(FileName)
说明:将FileName指定的文件装入对像中,参数FileName为指定的用户名。
Open 方法
使用方法如下
Object.Open(Source,[Mode],[Options],[UserName],[Password])
说明:打开对像,
参数说明:Sourece 对像源,可不指定
Mode 指定打开模式,可不指定,可选参数如下:
adModeRead =1
adModeReadWrite =3
adModeRecursive =4194304
adModeShareDenyNone =16
adModeShareDenyRead =4
adModeShareDenyWrite =8
adModeShareExclusive =12
adModeUnknown =0
adModeWrite =2
Options 指定打开的选项,可不指定,可选参数如下:
adOpenStreamAsync =1
adOpenStreamFromRecord =4
adOpenStreamUnspecified=-1
UserName 指定用户名,可不指定。
Password 指定用户名的密码
Read 方法
使用方法如下:
Object.Read(Numbytes)
说明:读取指定长度的二进制内容。
参数说明:Numbytes指定的要读取的找度,不指定则读取全部。

ReadText 方法
使用方法如下:
Object.ReadText(NumChars)
说明:读取指定长度的文本
参数说明:NumChars指定的要读取的找度,不指定则读取全部。

SaveToFile 方法
使用方法如下:
Object.SaveToFile(FileName,[Options])
说明:将对像的内容写到FileName指定的文件中
参数说明:FileName指定的文件
Options 存取的选项,可不指定,可选参数如下:
adSaveCreateNotExist =1
adSaveCreateOverWrite =2

SetEOS 方法
使用方法如下:
Object.setEOS()
说明:
SkipLine 方法
使用方法如下:
Object.SkipLine()
说明:
Write 方法
使用方法如下:
Object.Write(Buffer)
说明:将指定的数据装入对像中。
参数说明:Buffer 为指定的要写入的内容。
WriteText 方法
使用方法如下:
Object.Write(Data,[Options])
说明:将指定的文本数据装入对像中。
参数说明:Data 为指定的要写入的内容。
Options 写入的选项,可不指定,可选参数如下:
adWriteChar =0
adWriteLine =1




有下列属性:
Charset
EOS 返回对像内数据是否为空。

LineSeparator 指定换行格式,可选参数有
adCR =13
adCRLF =-1
adLF =10

Mode 指定或返加模式。

Position 指定或返加对像内数据的当前指针。

Size 返回对像内数据的大小。

State 返加对像状态是否打开。

Type 指定或返回的数据类型,可选参数为:
adTypeBinary =1

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


你可能感兴趣的:(vbs)