📄 form1.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 + -