📄 form2.frm
字号:
VERSION 5.00
Begin VB.Form Form2
Caption = "Form2"
ClientHeight = 3090
ClientLeft = 60
ClientTop = 450
ClientWidth = 4680
LinkTopic = "Form2"
ScaleHeight = 3090
ScaleWidth = 4680
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 405
Left = 2100
TabIndex = 0
Top = 2250
Width = 840
End
End
Attribute VB_Name = "Form2"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'Form 代码
Private Function B64D(ByVal strDecode As String) As String
Dim mInByte(4) As Byte, mOutByte(3) As Byte
Dim mByte As Byte
Dim mDecByte() As Byte
Dim i, j, k As Integer
Dim ByteNum As Integer
Dim tmpString As String
Dim mTotalByte() As Byte
ReDim mTotalByte(0 To 0)
mDecByte = StrConv(strDecode, vbFromUnicode)
i = 0
Do Until i > UBound(mDecByte)
j = 0
Do Until j > 3
If i + j > UBound(mDecByte) Then Exit Do
mInByte(j) = mDecByte(i + j)
j = j + 1
Loop
Call B64DB(mInByte, mOutByte, ByteNum)
On Error Resume Next
For j = 0 To 2 - ByteNum
k = UBound(mTotalByte)
mTotalByte(k) = mOutByte(j)
k = k + 1
ReDim Preserve mTotalByte(0 To k)
Next j
i = i + 4
Loop
B64D = StrConv(mTotalByte, vbUnicode)
End Function
Private Sub B64DB(mInByte() As Byte, mOutByte() As Byte, ByteNum As Integer)
Dim tByte As Byte
Dim i As Integer
ByteNum = 0
For i = 0 To 3
If mInByte(i) >= Asc("A") And mInByte(i) <= Asc("Z") Then
mInByte(i) = mInByte(i) - Asc("A")
ElseIf mInByte(i) >= Asc("a") And mInByte(i) <= Asc("z") Then
mInByte(i) = mInByte(i) - Asc("a") + 26
ElseIf mInByte(i) >= Asc("0") And mInByte(i) <= Asc("9") Then
mInByte(i) = mInByte(i) - Asc("0") + 52
ElseIf mInByte(i) = Asc("+") Then
mInByte(i) = 62
ElseIf mInByte(i) = Asc("/") Then
mInByte(i) = 63
Else '"="
ByteNum = ByteNum + 1
mInByte(i) = 0
End If
Next i
'取前六位
tByte = (mInByte(0) And &H3F) * 4 + (mInByte(1) And &H30) / 16
'0的六位和1的前两位
mOutByte(0) = tByte
tByte = (mInByte(1) And &HF) * 16 + (mInByte(2) And &H3C) / 4
'1的后四位和2的前四位
mOutByte(1) = tByte
tByte = (mInByte(2) And &H3) * 64 + (mInByte(3) And &H3F)
mOutByte(2) = tByte
'2的后两位和3的六位
End Sub
Private Sub Command1_Click()
MsgBox B64D("CWc1dd2Lhk4yAAAA")
End Sub
Private Sub Form_Load()
MsgBox "用法: 变量 = B64D(编码后字符串)"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -