精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓..网络程序开发..〓〓>>网络高级应用>>Base64编码函数(对想写Email程序的人有帮助)

主题:Base64编码函数(对想写Email程序的人有帮助)
发信人: garfieldmao()
整理人: winsy(2003-03-09 13:23:08), 站内信件
Encode和Decode的函数都有了,这么明显,会用了吧:)



Const sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" 

Function Base64decode(ByVal asContents) 
Dim lsResult 
Dim lnPosition 
Dim lsGroup64, lsGroupBinary 
Dim Char1, Char2, Char3, Char4 
Dim Byte1, Byte2, Byte3 
If Len(asContents) Mod 4 > 0 Then asContents = asContents & String(4 - (Len(asContents) Mod 4), " ") 
lsResult = "" 

For lnPosition = 1 To Len(asContents) Step 4 
    lsGroupBinary = "" 
    lsGroup64 = Mid(asContents, lnPosition, 4) 
    Char1 = InStr(sBASE_64_CHARACTERS, Mid(lsGroup64, 1, 1)) - 1 
    Char2 = InStr(sBASE_64_CHARACTERS, Mid(lsGroup64, 2, 1)) - 1 
    Char3 = InStr(sBASE_64_CHARACTERS, Mid(lsGroup64, 3, 1)) - 1 
    Char4 = InStr(sBASE_64_CHARACTERS, Mid(lsGroup64, 4, 1)) - 1 
    Byte1 = Chr(((Char2 And 48) \ 16) Or (Char1 * 4) And &HFF) 
    Byte2 = lsGroupBinary & Chr(((Char3 And 60) \ 4) Or (Char2 * 16) And &HFF) 
    Byte3 = Chr((((Char3 And 3) * 64) And &HFF) Or (Char4 And 63)) 
    lsGroupBinary = Byte1 & Byte2 & Byte3 
    
    lsResult = lsResult + lsGroupBinary 
Next 
Base64decode = lsResult 
End Function 


Function Base64encode(ByVal asContents) 
Dim lnPosition 
Dim lsResult 
Dim Char1 
Dim Char2 
Dim Char3 
Dim Char4 
Dim Byte1 
Dim Byte2 
Dim Byte3 
Dim SaveBits1 
Dim SaveBits2 
Dim lsGroupBinary 
Dim lsGroup64 

If Len(asContents) Mod 3 > 0 Then asContents = asContents & String(3 - (Len(asContents) Mod 3), " ") 
lsResult = "" 

For lnPosition = 1 To Len(asContents) Step 3 
    lsGroup64 = "" 
    lsGroupBinary = Mid(asContents, lnPosition, 3) 

    Byte1 = Asc(Mid(lsGroupBinary, 1, 1)): SaveBits1 = Byte1 And 3 
    Byte2 = Asc(Mid(lsGroupBinary, 2, 1)): SaveBits2 = Byte2 And 15 
    Byte3 = Asc(Mid(lsGroupBinary, 3, 1)) 

    Char1 = Mid(sBASE_64_CHARACTERS, ((Byte1 And 252) \ 4) + 1, 1) 
    Char2 = Mid(sBASE_64_CHARACTERS, (((Byte2 And 240) \ 16) Or (SaveBits1 * 16) And &HFF) + 1, 1) 
    Char3 = Mid(sBASE_64_CHARACTERS, (((Byte3 And 192) \ 64) Or (SaveBits2 * 4) And &HFF) + 1, 1) 
    Char4 = Mid(sBASE_64_CHARACTERS, (Byte3 And 63) + 1, 1) 
    lsGroup64 = Char1 & Char2 & Char3 & Char4 
    
    lsResult = lsResult + lsGroup64 
Next 

Base64encode = lsResult 
End Function 


----
看到了吗?就是这个QQ在线面板,废了我两个小时online去debug,真是可恶。呵呵~迟些开放让大家来用申请好吗?不是Tencent俱乐部的会员有福了!
                       QQ:1251089

[关闭][返回]