⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form2.frm

📁 主要功能:接收和发送短信
💻 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 + -