菜鸟求助高手指点下我
--------------------------------------------------------
我是初学者,麻烦高手尽量提供下源码以供参考。
比如:我的窗体中有3个text,(text1。text2,text3).
在text1里面输入汉字,那么text3中出现相对应的unicode十六进制的编码,我在text2中输入十六进制编码,在text3中出现对应的汉字。
例如:我在text1中输入一个”王“,那么text3中出现的是”738B“,
我在text2中输入”738B“,那么text3中出现的是”王“
-----------------------------------------------------------------
下面是我弄的代码。Dim txt1 As String
Dim txt2 As String
Dim txt3 As String
Private Sub Text1_Change()
txt1 = Text1.Text
txt3 = StrConv(txt1, vbFromUnicode)txt2 = StrConv(txt1, vbUnicode)
Text2.Text = txt3Text3.Text = txt2End Sub----------------------------------------
不知道为什么转换过来都是乱码了,不解,因为我初学编程,也是初学vb。麻烦告诉告诉我下。
--------------------------------------------------------
我是初学者,麻烦高手尽量提供下源码以供参考。
比如:我的窗体中有3个text,(text1。text2,text3).
在text1里面输入汉字,那么text3中出现相对应的unicode十六进制的编码,我在text2中输入十六进制编码,在text3中出现对应的汉字。
例如:我在text1中输入一个”王“,那么text3中出现的是”738B“,
我在text2中输入”738B“,那么text3中出现的是”王“
-----------------------------------------------------------------
下面是我弄的代码。Dim txt1 As String
Dim txt2 As String
Dim txt3 As String
Private Sub Text1_Change()
txt1 = Text1.Text
txt3 = StrConv(txt1, vbFromUnicode)txt2 = StrConv(txt1, vbUnicode)
Text2.Text = txt3Text3.Text = txt2End Sub----------------------------------------
不知道为什么转换过来都是乱码了,不解,因为我初学编程,也是初学vb。麻烦告诉告诉我下。
Dim txt1 As String
Dim txt2 As String
Dim txt3 As StringPrivate Sub Text1_Change()
txt1 = Text1.Texttxt3 = DEC_to_HEX(AscW(txt1))Text3.Text = txt3End Sub
Private Sub Text2_Change()
txt2 = Text2.Texttxt3 = ChrW(HEX_to_DEC(txt2))Text3.Text = txt3End Sub' 用途:将十六进制转化为十进制
' 输入:Hex(十六进制数)
' 输入数据类型:String
' 输出:HEX_to_DEC(十进制数)
' 输出数据类型:Long
' 输入的最大数为7FFFFFFF,输出的最大数为2147483647Public Function HEX_to_DEC(ByVal Hex As String) As Long
Dim i As Long
Dim B As Long
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0": B = B + 16 ^ (i - 1) * 0
Case "1": B = B + 16 ^ (i - 1) * 1
Case "2": B = B + 16 ^ (i - 1) * 2
Case "3": B = B + 16 ^ (i - 1) * 3
Case "4": B = B + 16 ^ (i - 1) * 4
Case "5": B = B + 16 ^ (i - 1) * 5
Case "6": B = B + 16 ^ (i - 1) * 6
Case "7": B = B + 16 ^ (i - 1) * 7
Case "8": B = B + 16 ^ (i - 1) * 8
Case "9": B = B + 16 ^ (i - 1) * 9
Case "A": B = B + 16 ^ (i - 1) * 10
Case "B": B = B + 16 ^ (i - 1) * 11
Case "C": B = B + 16 ^ (i - 1) * 12
Case "D": B = B + 16 ^ (i - 1) * 13
Case "E": B = B + 16 ^ (i - 1) * 14
Case "F": B = B + 16 ^ (i - 1) * 15
End Select
Next i
HEX_to_DEC = B
End Function
' 用途:将十进制转化为十六进制
' 输入:Dec(十进制数)
' 输入数据类型:Long
' 输出:DEC_to_HEX(十六进制数)
' 输出数据类型:String
' 输入的最大数为2147483647,输出最大数为7FFFFFFF
Public Function DEC_to_HEX(Dec As Long) As String
Dim a As String
DEC_to_HEX = ""
Do While Dec > 0
a = CStr(Dec Mod 16)
Select Case a
Case "10": a = "A"
Case "11": a = "B"
Case "12": a = "C"
Case "13": a = "D"
Case "14": a = "E"
Case "15": a = "F"
End Select
DEC_to_HEX = a & DEC_to_HEX
Dec = Dec \ 16
Loop
End Function