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

📄 form1.frm

📁 字符↓↑16进制 转换器源代码 程序文件包括:Asc2Hex.exe | Asc2Hex.exe.manifest | readme.txt
💻 FRM
字号:
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form Frmmain 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "字符↓↑16进制 转换器 V1.01"
   ClientHeight    =   6225
   ClientLeft      =   1650
   ClientTop       =   2040
   ClientWidth     =   6375
   Icon            =   "Form1.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   6225
   ScaleWidth      =   6375
   Begin MSComDlg.CommonDialog CommonDialog1 
      Left            =   5880
      Top             =   2760
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.Frame Frame1 
      Caption         =   "字符串"
      Height          =   2535
      Left            =   120
      TabIndex        =   2
      Top             =   120
      Width           =   6135
      Begin VB.TextBox Text1 
         Height          =   2175
         Left            =   120
         MultiLine       =   -1  'True
         ScrollBars      =   2  'Vertical
         TabIndex        =   3
         Text            =   "Form1.frx":0CCA
         ToolTipText     =   "你可以在这里输入字符"
         Top             =   240
         Width           =   5895
      End
   End
   Begin VB.Frame Frame2 
      Caption         =   "16进制"
      Height          =   2535
      Left            =   120
      TabIndex        =   0
      Top             =   3480
      Width           =   6135
      Begin VB.TextBox Text2 
         Height          =   2175
         Left            =   120
         MultiLine       =   -1  'True
         ScrollBars      =   2  'Vertical
         TabIndex        =   1
         ToolTipText     =   "在这里你可以输入16进制,有无空格都无所谓!"
         Top             =   240
         Width           =   5895
      End
   End
   Begin VB.Frame Frame3 
      Height          =   735
      Left            =   120
      TabIndex        =   4
      Top             =   2690
      Width           =   6135
      Begin VB.CommandButton Command3 
         Caption         =   "&Clear"
         Height          =   495
         Left            =   2520
         TabIndex        =   7
         Top             =   160
         Width           =   1095
      End
      Begin VB.CommandButton Command2 
         Caption         =   "Hex ↑ &Ascii"
         Height          =   495
         Left            =   240
         TabIndex        =   6
         Top             =   160
         Width           =   2055
      End
      Begin VB.CommandButton Command1 
         Caption         =   "Ascii ↓ &Hex"
         Height          =   495
         Left            =   3840
         TabIndex        =   5
         Top             =   160
         Width           =   2055
      End
   End
   Begin VB.Menu mnufile 
      Caption         =   "文件[&F]"
      Begin VB.Menu mnuHex 
         Caption         =   "打开&Hex文件"
      End
      Begin VB.Menu mnutxt 
         Caption         =   "打开&Txt文件"
      End
      Begin VB.Menu mnugan1 
         Caption         =   "-"
      End
      Begin VB.Menu mnuHSave 
         Caption         =   "H&ex文件另存为"
      End
      Begin VB.Menu mnuTSave 
         Caption         =   "T&xt文件另存为"
      End
      Begin VB.Menu mnugan2 
         Caption         =   "-"
      End
      Begin VB.Menu mnuexit 
         Caption         =   "退出[&Q]"
      End
   End
   Begin VB.Menu mnuabout 
      Caption         =   "关于[&A]..."
   End
End
Attribute VB_Name = "Frmmain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
    '******************************
    '字符与16进制相互转换(自写函数)
    '写者:蔡浴钿 网名:AK101
    '主页:http://e234.ni8.net
    'E:mail:caiyudian@21cn.com
    '******************************
    '首发 枕善居(我为人人,人人为我)
    'http://www.mndsoft.com/
    '******************************
    
    Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
    
    Private Sub Form_Initialize()
        InitCommonControls
    End Sub


Private Sub Command3_Click()
Text1.Text = ""
Text2.Text = ""
Text1.SetFocus
End Sub

Private Sub Command1_Click()
   On Error Resume Next
     Text2.Text = Asc2Hex(Text1) '调用字符转16进制函数
End Sub

Private Sub Command2_Click()
On Error Resume Next
     Text1.Text = Hex2Asc(Text2.Text) '调用16进制转字符函数
End Sub

Sub AutoSelect(SelObject As Control) '自动选定文本函数
SelObject.SelStart = 0
If TypeOf SelObject Is TextBox Then
   SelObject.SelLength = Len(SelObject.Text)
End If
End Sub



Private Sub Form_DblClick()
   MsgBox "字符↓↑16进制 转换器 V1.01" & Chr(13) & Chr(13) & "       制作:AK101" & Chr(13) & Chr(13) & " Email:caiyudian@21cn.com", , "嗨!你知道吗?!"
End Sub


Private Sub mnuabout_Click()
MsgBox "字符↓↑16进制 转换器 V1.01 版权所有(C) 2005 AK101", vbOKOnly, "关于"

End Sub

Private Sub mnuexit_Click()
   End
End Sub

Private Sub mnuHex_Click()
    On Error GoTo Err_Handle

    CommonDialog1.Filter = "十六进制文本(*.Hex)|*.Hex"
    CommonDialog1.ShowOpen
    file = CommonDialog1.FileName

    If file <> "" Then
       
       Dim sA As String * 65400 '声明定长String变量
       Open file For Binary As #1 '用二进制打开文件
       Get #1, , sA '用Get语句从文件中获取字节
       Text2 = sA '显示打开的文件
       Close #1 '关闭文件

    End If


    Exit Sub
Err_Handle:
    MsgBox Err.Description
    Exit Sub
End Sub

Private Sub mnuHSave_Click()
    On Error GoTo Err_Handle
    CommonDialog1.Filter = "十六进制文本(*.Hex)|*.Hex"
    CommonDialog1.ShowSave
    file = CommonDialog1.FileName

    If file <> "" Then
       
       Dim sA As String '* 65400 '声明定长String变量
       sA = Text2.Text
       Open file For Binary As #1 '用二进制打开文件
       Put #1, , sA '用Get语句从文件中获取字节
       'Text1 = sA '显示打开的文件
       Close #1 '关闭文件

    End If


    Exit Sub
Err_Handle:
    MsgBox Err.Description
    Exit Sub
End Sub

Private Sub mnuTSave_Click()
    On Error GoTo Err_Handle
    CommonDialog1.Filter = "文本文档(*.txt)|*.txt"
    CommonDialog1.ShowSave
    file = CommonDialog1.FileName

    If file <> "" Then
     
       Dim sA As String ' * 65400 '声明定长String变量
       sA = Text1.Text
       Open file For Binary As #1 '用二进制打开文件
       Put #1, , sA '用put语句写进字节
       'Text1 = sA '显示打开的文件
       Close #1 '关闭文件

    End If


    Exit Sub
Err_Handle:
    MsgBox Err.Description
    Exit Sub
End Sub

Private Sub mnutxt_Click()
    On Error GoTo Err_Handle

    CommonDialog1.Filter = "文本文档(*.txt)|*.txt|所有文件(*.*)|*.*"
    CommonDialog1.ShowOpen
    file = CommonDialog1.FileName

    If file <> "" Then
       
       Dim sA As String * 65400 '声明定长String变量
       Open file For Binary As #1 '用二进制打开文件
       Get #1, , sA '用Get语句从文件中获取字节
       Text1 = sA '显示打开的文件
       Close #1 '关闭文件

    End If


    Exit Sub
Err_Handle:
    MsgBox Err.Description
    Exit Sub

End Sub

Private Sub Text1_GotFocus()
   AutoSelect Text1
End Sub

Private Sub Text2_GotFocus()
   AutoSelect Text2
End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)
KeyAscii = TestText(KeyAscii, "0123456789 ABCDEFabcdef", True)
End Sub


'----------------------------以下是函数区

Function TestText(KeyIn As Integer, ListString As String, EditBasp As Boolean) As Integer
    Dim TestDATList As String '定义限制字符表变量
    Dim KeyOut As Integer '返回值变量
    If EditBasp = True Then '测试<BACKSPACE>是否有效
         TestDATList = UCase(ListString) & Chr(8) '得到含<BACKSPACE>字符的大写表
         Else
         TestDATList = UCase(ListString) '得到无<BACKSPACE>字符的大写表
    End If
    If InStr(1, TestDATList, UCase(Chr(KeyIn)), 1) > 0 Then '键值是否在表中
        KeyOut = KeyIn '是则附键值
        Else
        KeyOut = 0 '否则键值无效
        Beep '响声警告
    End If
    TestText = KeyOut '返回结果
End Function



Function Hex2Asc(Sj16 As String) As String '16进制转字符函数'调用 Hex2Asc(Sj16)
On Error Resume Next
     Dim 十六制 As String, 字符 As String
     十六制 = KongGE(Sj16, " ") '调用了去除空格函数
     字符 = ""
     For i = 1 To Len(十六制) Step 2
     '字符 = 字符 + Chr("&H" + Mid(十六制, i, 4))
         If "&H" & Mid(十六制, i, 2) > &H7F Then         '当取得的16进制大于&H7F(既10进制127)时,为汉字
            字符 = 字符 & Chr("&H" & Mid(十六制, i, 4))  '在这里循环取4位,生成汉字字符
            i = i + 2                                    '"指针"向后移动2位
         Else                                            '如果不是汉字
            字符 = 字符 & Chr("&H" & Mid(十六制, i, 2))  '循环取2位,生成英文或者其他字符
       
         End If
     Next
     Hex2Asc = 字符
End Function

Function Asc2Hex(SjAsc As String) As String '字符制转16进函数'调用 Asc2Hex(SjAsc)
On Error Resume Next
   Dim yssj, Bs, Bs2, Hz As String
   Dim Jg As Integer
   yssj = SjAsc
   Jg = Len(yssj)
   Bs = ""
   Bs2 = ""
   Dim i
   For i = 1 To Jg
       If Asc(Mid(yssj, i, 1)) > 0 And Asc(Mid(yssj, i, 1)) < 32 Then '这里转换不是字符的编码
          Bs = Bs & "0" & Hex(Asc(Mid(yssj, i, 1))) & " "
       ElseIf Asc(Mid(yssj, i, 1)) >= 32 And Asc(Mid(yssj, i, 1)) < 127 Then '这里转英文和符号等的编码
          Bs = Bs & Hex(Asc(Mid(yssj, i, 1))) & " "
       Else                                                           '这里转汉字
          Hz = Hex(Asc(Mid(yssj, i, 1)))
          Dim h
          For h = 1 To 4 Step 2
             Bs = Bs & Mid(Hz, h, 2) & " "   '汉字转换后(把FFFF换为FF FF 格式)
          Next h
       End If
   Next i
   Asc2Hex = Bs
End Function


Function KongGE(Sj As String, Sc As String) As String '删除指定的字符函数'调用 KongGE(Text2.Text, " ")
Dim i As Integer, res As String
   Search = Sc
   res = Sj
 Do While InStr(res, Search)
   i = InStr(res, Search)
   res = Left(res, i - 1) & Mid(res, i + 1)
 Loop
 KongGE = res '返回
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -