菜鸟求助高手指点下我
--------------------------------------------------------
我是初学者,麻烦高手尽量提供下源码以供参考。
比如:我的窗体中有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。麻烦告诉告诉我下。

解决方案 »

  1.   

    函数用得不对,而且还要进行进制转换:
    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