国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 古田县| 卢氏县| 安阳县| 收藏| 济宁市| 中方县| 大田县| 阿图什市| 广宁县| 乌恰县| 曲阳县| 营口市| 陆川县| 临夏县| 郓城县| 怀化市| 泸州市| 色达县| 土默特左旗| 清丰县| 宣城市| 本溪市| 读书| 庄河市| 宁都县| 叶城县| 鄢陵县| 桑日县| 吕梁市| 常宁市| 泰来县| 湖南省| 鄂尔多斯市| 岳西县| 依兰县| 莫力| 开平市| 和静县| 吴忠市| 广宗县| 开封县|