ASP中利用ADODB.Stream對象將位元組流轉換為字元流

來源:互聯網
上載者:User
'--------------------------------------------------------------------
' 二進位轉字串
'
' 入口參數:位元組流
' 函數返回:字串
' Code By:Madpolice 2002-12-20
' 利用 ADODB.Stream 對象,速度比原來的字元替換法快了n倍,n≈30!!)
'--------------------------------------------------------------------
'下面的常量是函數用到的,因為我在函數外面已經定義過了,因此不在這裡重複定義
'---- StreamTypeEnum Values ----
'Const adTypeBinary = 1
'Const adTypeText = 2
Function Bytes2bStr(vin)
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject("ADODB.Stream") '建立一個流對象
With BytesStream
.Type = adTypeText '設定流對象的類型為字元流
.Open '開啟流對象
.WriteText vin '把vin寫入流對象中
.Position = 0 '設定流對象的起始位置是0,也就是開頭
'這個操作必須做,為什麼我也不知道,失敗了n次得出的結論
'如果不進行這個操作,下面設定Charset屬性就出錯
.Charset = "GB2312" '設定流對象的編碼方式為GB2312
.Position = 2 '設定流對象的起始位置是2(過濾掉開始的一個控制字元
'這個控制字元是WriteText方法按預設屬性Charset="Unicode"
'讀入資料的時候自動加到資料開頭的,字元的值是FF3F
'這個控制字元佔2位元組,所以Position設定為2
'表示略過2個位元組,下面的ReadText方法從Position開始讀資料
StringReturn = .ReadText '把流對象的內容儲存在StringReturn變數中
.close '關閉流對象
End With
Set BytesStream = Nothing '銷毀流對象
Bytes2bStr = StringReturn
End Function
'--------------------------------------------------------------------

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.