Dim A As String
Dim B() As Byte
Dim TS As String
Dim sTr As String
Dim Tl() As String
Dim strtem() As String
Dim yuant As String
A = Chr(15) & Chr(10)
A = A & A & A & A & A & A & A & A & Chr(0) & Chr(0) & Chr(0) & Chr(0)
A = A & Text4.Text & Chr(0)      '  text4.text 最后要显示的 字符串B = StrConv(A, vbFromUnicode)For j = 0 To UBound(B)         '把字符串 转化为 16进制字符串 yuant
yuant = yuant & " " & Hex(B(j))
Next
yuant = Trim(yuant)strtem = Split(yuant, " ")     'strtem 16进制 字符串数组ReDim Tl(UBound(strtem)) As StringFor i = 16 To UBound(strtem)             '将 16进制 数组 还原成 字符串数组  
      If Val("&H" & strtem(i)) > 128 Then
      If i + 1 > UBound(strtem) Then Exit For
      Tl(i) = Chr(Val("&H" & strtem(i) & strtem(i + 1)))
      i = i + 1
      Debug.Print Tl(i)                  '这里不显示任何东西
    Else
      Tl(i) = Chr(Val("&H" & strtem(i)))
      Debug.Print Tl(i)                 ''这里不显示任何东西    End If
   
Next
For i = 0 To UBound(Tl)                                '有趣的问题出现在这里 用text
                                                       '控件可以正常显示内容
    If Tl(i) <> "" Then Text5.Text = Text5.Text & Tl(i)'如果 把text5.text 替换成字符变量
                                                       '那么 这个变量 不显示任何东西
                                                       '这里必须用text 控件  
Next                                                   '请教   这是什么原因造成的?
End Sub

解决方案 »

  1.   

    估计是文本框会自动处理掉了Chr(0)
    这样改一下就可以了For i = 0 To UBound(Tl)
        If Tl(i) <> "" Then tS = tS & Tl(i)
    Next
    Text5.Text = Trim(Replace(tS, Chr(0), " "))
      

  2.   

    顺便 问一下  asc值 在多大一下就不能显示字符了??
      

  3.   

    同意 AprilSong(X)的意见: 估计是文本框会自动处理掉了Chr(0)
    另外, 楼主的代码真得好乱, 比如以下的代码, 实在是有着太多的"冗余":B = StrConv(A, vbFromUnicode)For j = 0 To UBound(B)         '把字符串 转化为 16进制字符串 yuant
    yuant = yuant & " " & Hex(B(j))
    Nextyuant = Trim(yuant)strtem = Split(yuant, " ")     'strtem 16进制 字符串数组完全可以改成:B = StrConv(A, vbFromUnicode)Redim strtem (UBound(B))For j = 0 To UBound(B)
      strtem(j) = Hex(B(j))
    Next
      

  4.   

    再简单一点, 可以这样写:
    ReDim strtem(Len(A) - 1)
    For j = 0 To Len(A) - 1
        strtem(j) = Hex(Asc(Mid(A, j + 1, 1)))
    Next j
      

  5.   

    谢谢各位指点还有个问号呢     ascii 值多大 就不能显示为字符了?