国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

VBS中轉(zhuǎn)換二進制數(shù)據(jù)為字符串常用辦法

2019-10-26 17:57:59
字體:
供稿:網(wǎng)友
至少有三種以上辦法,可以把二進制數(shù)據(jù)(比如您從ASP的Request.BinaryRead方法得到的數(shù)據(jù))轉(zhuǎn)換為字符串。 

第一種:使用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 

這個方法非常簡單明了,但是處理大數(shù)據(jù)流時,比較慢。 
建議只用來處理100KB以下的數(shù)據(jù)。 
下面的這個類似的方法,性能稍微好些: 
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以下的數(shù)據(jù)。 
第二種方法:使用ADODB.Recordset 
ADODB.Recordset 可以讓你支持幾乎所有VARIANT支持的數(shù)據(jù)類型,你可以用它在string和 
binary之間轉(zhuǎn)換。 
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 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 勃利县| 临海市| 萝北县| 胶南市| 红原县| 屏边| 芷江| 皋兰县| 遂昌县| 富宁县| 缙云县| 永修县| 武功县| 长岭县| 京山县| 横山县| 林芝县| 双流县| 文登市| 陆川县| 兰西县| 长乐市| 隆尧县| 建始县| 平定县| 新郑市| 宁晋县| 鲁甸县| 芮城县| 合肥市| 仁寿县| 香格里拉县| 大足县| 靖边县| 英吉沙县| 辽宁省| 溧阳市| 江安县| 杭锦后旗| 南宁市| 陵川县|