我想做个程序,读取一个文件的内容在从串口发出去,文件内容是一些asc码,如:0 42 42 42 13 10 56 48 56 54 47 56 48 56 55 32 32 77 79 78 73 84 79 82 47 68 69 66 85 71 69 82 32 86 51 46 48 13 10 32 32 32 32 32 67 79 80 89 82 73 71 72 84 32 49 57 57 49 46 54 32 32 80 82 79 71 82 65 77 69 68 32 66 89 32 90 72 73 71 69 46 89 65 78 71 10 13 68 65 84 69 40 89 101 97 114 47 77 111 110 116 104 47 68 97 116 101 32 32 32 61 32 32 57 48 47 48 49 47 48 49 41 13 10 84 73 77 69 40 72 111 117 114 58 77 105 110 117 116 101 58 83 101 99 111 110 我需要把这些代码转化成汉字,再传出去,我该咋办???怎样一个一个字符的读取文件??

解决方案 »

  1.   

    因为我读取的文件中的内容没有回车,所以就只是一行
    我编了如下程序:Private Sub Command1_Click()
    Dim temp, stra As String, strb As String
    Dim fso                                                                    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim fil
    Set fil = fso.OpenTextFile("C:\Documents and Settings\a1\桌面\t719")
    Dim linenum As Integer
    strb = ""
    temp = fil.readline
    MSComm1.PortOpen = True
    For i = 1 To Len(temp)
     stra = Mid(temp, i, 1)
     strb = strb & stra
     If stra = "" Then
       MSComm1.Output = Chr(strb)
     strb = ""
     End If
    Next i
    MSComm1.PortOpen = False
      
    End Sub传送数据时,非汉字的字符可以传送无误,但是汉字就无法显示了,我又变了一个小程序试了一下,chr(181)就显示不出来了而chr(61)就能正常显示,这是为什吗??我该怎马办啊???
      

  2.   

    这是汉字编码问题,你用ASC(“中”)得到的也不一定是正数,而是一个负数。
    我以前做过,现在不大清楚了,这儿也没VB IDE,不方便,有机会,我试试!
      

  3.   

    转换什么啊,原样发出去就是行了,汉字不也是一个二进制串吗?计算机里有什么不是二进制的呢?
    你查看的是十六进制的显示方式,发过去自然能识别出来,有什么不同?
    实在想知道它换成中文是什么的话,可以用chr()或chrb()查一下。