VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 2310|回复: 1

[求助] VB从下位机接收数据包,然后写入数组

[复制链接]
发表于 2012-12-12 14:15:34 | 显示全部楼层 |阅读模式
求助啊,,,,我在下位机发送的是十六进制数给上位机,格式是   FF 01 02 FF    其中FF是表示头尾,中间01 02 是我想提取出来放入数组的数据,怎么取出来呃???求大神大师啊...








Private Sub Command1_Click()
MSComm1.PortOpen = True


End Sub

Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 1024
MSComm1.InputMode = 1
MSComm1.InputLen = 0
MSComm1.InBufferCount = 0
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1

End Sub

Public Sub MSComm1_OnComm()
   
    Dim bytInput() As Byte
    Dim intInputLen As Integer
    Dim n As Integer
    Dim teststring As String
    Dim jieshou() As Integer
   
    Select Case MSComm1.CommEvent
        
        
        Case comEvReceive
           
            MSComm1.InputMode = 1                    '1:二进制方式
         
            
            intInputLen = MSComm1.InBufferCount
            bytInput = MSComm1.Input
            
           
            For n = 0 To intInputLen - 1
               Text1.Text = Trim(Text1.Text) & " " & IIf(Len(Hex$(bytInput(n))) > 1, Hex$(bytInput(n)), "0" & Hex$(bytInput(n)))
               'trim()是去除字符串头或尾部的空格,但不包含中间的空格。    IIF( 逻辑表达式 , 表达式1 , 表达式2 )
              
              jieshou(n) = Text1.Text

            Next n
            Text2.Text = jieshou(1)
            
    End Select
   
End Sub
这是我写的,jieshou()是我想存数据进去的数组,然后提示实时错误 9  下标越界,求解...
发表于 2012-12-21 20:05:47 | 显示全部楼层
接收的时候使用二进制模式,然后接收到一个byte数组里,不就可以了?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-1-21 13:35

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表