亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

VBS中轉換二進制數據為字符串常用辦法

2020-07-26 12:05:01
字體:
來源:轉載
供稿:網友
至少有三種以上辦法,可以把二進制數據(比如您從ASP的Request.BinaryRead方法得到的數據)轉換為字符串。 

第一種:使用VBS的MultiByte 方法 

實例: 

Function SimpleBinaryToString(Binary) 
'SimpleBinaryToString converts binary data (VT_UI1 | VT_ARRAY Or MultiByte string) 
'to a string (BSTR) using MultiByte VBS functions 
Dim I, S 
For I = 1 To LenB(Binary) 
S = S & Chr(AscB(MidB(Binary, I, 1))) 
Next 
SimpleBinaryToString = S 
End Function 

這個方法非常簡單明了,但是處理大數據流時,比較慢。 
建議只用來處理100KB以下的數據。 
下面的這個類似的方法,性能稍微好些: 
Function BinaryToString(Binary) 
'Antonin Foller, http://www.pstruh.cz 
'Optimized version of a simple BinaryToString algorithm. 

Dim cl1, cl2, cl3, pl1, pl2, pl3 
Dim L 
cl1 = 1 
cl2 = 1 
cl3 = 1 
L = LenB(Binary) 

Do While cl1<=L 
pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1))) 
cl1 = cl1 + 1 
cl3 = cl3 + 1 
If cl3>300 Then 
pl2 = pl2 & pl3 
pl3 = "" 
cl3 = 1 
cl2 = cl2 + 1 
If cl2>200 Then 
pl1 = pl1 & pl2 
pl2 = "" 
cl2 = 1 
End If 
End If 
Loop 
BinaryToString = pl1 & pl2 & pl3 
End Function 
BinaryToString方法比SimpleBinaryToString方法性能高20倍。建議用來處理2MB以下的數據。 
第二種方法:使用ADODB.Recordset 
ADODB.Recordset 可以讓你支持幾乎所有VARIANT支持的數據類型,你可以用它在string和 
binary之間轉換。 
Function RSBinaryToString(xBinary) 
'Antonin Foller, http://www.pstruh.cz 
'RSBinaryToString converts binary data (VT_UI1 | VT_ARRAY Or MultiByte string) 
'to a string (BSTR) using ADO recordset 

Dim Binary 
'MultiByte data must be converted To VT_UI1 | VT_ARRAY first. 
If vartype(xBinary)=8 Then Binary = MultiByteToBinary(xBinary) Else Binary = xBinary 

Dim RS, LBinary 
Const adLongVarChar = 201 
Set RS = CreateObject("ADODB.Recordset") 
LBinary = LenB(Binary) 

If LBinary>0 Then 
RS.Fields.Append "mBinary", adLongVarChar, LBinary 
RS.Open 
RS.AddNew 
RS("mBinary").AppendChunk Binary 
RS.Update 
RSBinaryToString = RS("mBinary") 
Else 
RSBinaryToString = "" 
End If 
End Function 
RSBinaryToString 沒有什么限制--除了物理內存之外。這種處理方式是MultiByte方式的100倍!你可以用它來處理高達100MB的數據! 這種轉換方式,你也可以用來把MultiByte strings轉換為String。下面這個方法把MultiByte strings轉換為Binary:Function MultiByteToBinary(MultiByte) 
'&copy; 2000 Antonin Foller, http://www.pstruh.cz 
' MultiByteToBinary converts multibyte string To real binary data (VT_UI1 | VT_ARRAY) 
' Using recordset 
Dim RS, LMultiByte, Binary 
Const adLongVarBinary = 205 
Set RS = CreateObject("ADODB.Recordset") 
LMultiByte = LenB(MultiByte) 
If LMultiByte>0 Then 
RS.Fields.Append "mBinary", adLongVarBinary, LMultiByte 
RS.Open 
RS.AddNew 
RS("mBinary").AppendChunk MultiByte & ChrB(0) 
RS.Update 
Binary = RS("mBinary").GetChunk(LMultiByte) 
End If 
MultiByteToBinary = Binary 
End Function 
第三種:使用ADODB.Stream這種方式是比較常用的:'Stream_BinaryToString Function 
'2003 Antonin Foller, http://www.pstruh.cz 
'Binary - VT_UI1 | VT_ARRAY data To convert To a string 
'CharSet - charset of the source binary data - default is "us-ascii" 
Function Stream_BinaryToString(Binary, CharSet) 
Const adTypeText = 2 
Const adTypeBinary = 1 

'Create Stream object 
Dim BinaryStream 'As New Stream 
Set BinaryStream = CreateObject("ADODB.Stream") 

'Specify stream type - we want To save text/string data. 
BinaryStream.Type = adTypeBinary 

'Open the stream And write text/string data To the object 
BinaryStream.Open 
BinaryStream.Write Binary 


'Change stream type To binary 
BinaryStream.Position = 0 
BinaryStream.Type = adTypeText 

'Specify charset For the source text (unicode) data. 
If Len(CharSet) > 0 Then 
BinaryStream.CharSet = CharSet 
Else 
BinaryStream.CharSet = "us-ascii" 
End If 

'Open the stream And get binary data from the object 
Stream_BinaryToString = BinaryStream.ReadText 
End Function 
要存儲、獲取二進制數據,從一個本地文件、上傳的二進制數據文件或者ASP中,可以參考:Pure and Huge ASP file upload with progress.。 Tip keywords: Binary, Byte, Array, VT_UI1, VT_ARRAY, BinaryWrite, BinaryRead, ChrB, InstrB, LeftB, MidB, RightB, ASP, VBSCOPYRIGHT AND PERMITTED USE OF http://www.pstruh.cz/tips WEBSITE. The entire contents of PSTRUH Software website consist of copyright material owned by Antonin Foller, PSTRUH Software. 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清在线播放| 亚洲大胆人体av| 亚洲第一偷拍网| 国产精品国产三级国产专播精品人| 精品国产乱码久久久久久虫虫漫画| 日本一本a高清免费不卡| 一区二区亚洲精品国产| 久久久久久这里只有精品| 亚洲视频999| 国产97在线视频| 欧美剧在线观看| 日本一区二区三区四区视频| 精品久久久久久久久久久久久久| 国产91色在线|免| 亚洲午夜性刺激影院| 久久久免费观看| 国产精品久久久久国产a级| 久久福利网址导航| 久久精品久久久久久国产 免费| 精品动漫一区二区三区| 日韩动漫免费观看电视剧高清| 色樱桃影院亚洲精品影院| 国产亚洲免费的视频看| 在线观看欧美成人| 欧美一级视频在线观看| 日韩精品在线观看视频| 精品爽片免费看久久| 国产人妖伪娘一区91| 亚洲91av视频| 日韩av影院在线观看| 亚洲欧美在线一区| 亚洲va码欧洲m码| 成人黄色免费网站在线观看| 日韩va亚洲va欧洲va国产| 成人有码视频在线播放| 国产精品高清在线观看| 国产亚洲精品一区二555| 岛国视频午夜一区免费在线观看| 国产精品私拍pans大尺度在线| 久久国产精品久久久久久| 日本人成精品视频在线| 精品视频在线播放| 久久成人这里只有精品| 久久香蕉国产线看观看av| 亚洲精品免费av| 亚洲精品一区二区三区婷婷月| 久久久久久久久久久成人| 国产成一区二区| 免费99精品国产自在在线| 欧美成人性色生活仑片| 久久久91精品国产一区不卡| 97视频免费在线看| 久久久极品av| 热99久久精品| 欧美日韩电影在线观看| 亚洲高清不卡av| 国产日韩精品入口| 日韩高清不卡av| 久久久亚洲精品视频| 色综合天天狠天天透天天伊人| 亚洲午夜av久久乱码| 国产一区二区三区直播精品电影| 亚洲国产精品久久久| 亚洲直播在线一区| 亚洲国内高清视频| 国产视频精品在线| xx视频.9999.com| 日韩中文理论片| 色综合久久天天综线观看| 日韩动漫免费观看电视剧高清| 精品视频在线导航| 成人激情视频网| 欧美日韩在线观看视频| 亚洲女人天堂网| 欧美日韩视频在线| 一区二区三区四区在线观看视频| 亚洲欧洲在线视频| 欧美成aaa人片免费看| 久久激情视频久久| 亚洲情综合五月天| 久久精品国产欧美激情| 日韩av在线免费观看| 欧美激情手机在线视频| 欧美一区在线直播| 揄拍成人国产精品视频| 亚洲欧美在线磁力| 91av在线国产| 在线精品国产成人综合| 亚洲最大成人网色| www欧美xxxx| 欧美日韩在线视频一区二区| 人妖精品videosex性欧美| 亚洲精品一区二区在线| 中文字幕精品av| 91嫩草在线视频| 亚洲精品日韩av| 精品无码久久久久久国产| 日韩精品在线视频观看| 国产精品成人一区二区三区吃奶| 成人福利在线观看| 97色伦亚洲国产| 成人亲热视频网站| 欧美一级大片视频| 国产精品91免费在线| 国产91热爆ts人妖在线| 国产一区二区在线播放| 久久人91精品久久久久久不卡| 国产日韩欧美电影在线观看| 午夜精品久久久久久久久久久久| 日韩毛片中文字幕| 国产日本欧美一区| 欧美性生交xxxxx久久久| 97精品伊人久久久大香线蕉| 97色在线视频观看| 欧美极品少妇xxxxx| 92福利视频午夜1000合集在线观看| 国产精品一区二区三区免费视频| 中文字幕日韩精品有码视频| 在线观看精品国产视频| 国产成人精品久久| 九九视频这里只有精品| 中文字幕日韩高清| 亚洲一区二区少妇| 国产精品免费视频久久久| 久久久久这里只有精品| 欧美特级www| 国产成人高潮免费观看精品| 亚洲深夜福利视频| 欧美精品久久久久久久| 精品福利在线视频| 久久精品一本久久99精品| 久久亚洲精品视频| 2020久久国产精品| 国产成+人+综合+亚洲欧洲| 91在线网站视频| 久久久久久久一区二区| 欧美性猛交xxxx乱大交极品| 91九色国产在线| 欧美国产日韩视频| 色哟哟入口国产精品| 91社影院在线观看| 992tv在线成人免费观看| 精品国产乱码久久久久久虫虫漫画| 中文字幕国产亚洲2019| 欧美精品免费在线| 中文.日本.精品| 日韩电影在线观看中文字幕| 欧美日韩一区二区三区在线免费观看| 成人免费视频在线观看超级碰| 国产精品一区二区久久国产| 成人免费高清完整版在线观看| 性色av一区二区三区在线观看| 亚洲第一免费播放区| 亚洲美女激情视频| 一本大道香蕉久在线播放29| 97超级碰碰人国产在线观看| 国产精品成人va在线观看| 66m—66摸成人免费视频| 91精品国产精品| 国产精品久久99久久| 在线播放精品一区二区三区| 久久国产一区二区三区| 亚洲xxxx3d| 欧美日韩国产成人在线|