我想將senddata與getdata由string轉為用hex來格式來接送和接收數據,應該如果轉換?

解决方案 »

  1.   

    传之前转,收到后换!
    HEX转换就自己想了...asc("你") = -15133
    hex(-15133) = C4E3
    &HC4E3 = -15133
    chr(-15133) = "你"
      

  2.   

    不太明白Dim adata As String
    adata = "12345"
    tcpClient.SendData adata
    12345傳出時hex碼會是31 32 33 34 35
    Dim adata As String
    adata = "31 32 33 34 35"
    tcpClient.SendData adata
    如果這樣傳出hex碼就會是33 31 20 33 32 20 33 33 20 33 34 20 33 35請問我如何直接傳出hex碼為31 32 33 34 35的封包?
      

  3.   

    这样传的话,需要一个一个的翻译成16进制Ascii码!
    在每个16进制码之间加上一点标识,如:vbnullchar (0长度的空字符)!则:adata = hex(asc("1")) & vbnullchar & hex(asc("2")) & vbnulchar & ...(这个可以设计一个函数作翻译连接工作)接收那边收到这样的字符串组合后,使用split(adata,vbnullchar)返回一个数组!
    如:abc()是一个动态string数组.用dim声明了!abc = split(adata,vbnullchar)
    调用split函数后,abc()的格式为:abc(0) = "31" ; abc(1) = "32" ; abc(2) = "33" ...可以用循环把数组里的每个元素加上 strTmp = strTmp & chr("&H" & abc(i))
    这样就复原了!
      

  4.   

    試了qyii的方法,使用adata = Hex("0~9") & vbNullChar可以傳出0~9數字,但其他不知如何傳出,例如DA,AA,9E,8B等等的如何可以傳出?
      

  5.   

    为什么要to hex,dim mysenddata() as byte:mysenddata=strconv(vdata,vbfromunicode),发送,ws_dataarrival getData,vbbyte+vbarray,strconv(getData,vbansi)就行.