例如如下的byte数组
Dim Buffer(15) as byte
从0-15的内容是
C1,04,00,08,C1,05,0A,0B,0C,C2,00,07,A1,A2,A3,A4
我想根据这个byte数组得到下面的结果,字符串获byte数组都行。
C1,04,00,08
C1,05,0A,0B,0C
C2,00,07,A1,A2,A3,A4在这里面C1和C2为标识,如果标识是C1那C1后面的一位就是这一段的长度。如果是C2那第3位就是这一段的长度。
所以上面的第一组是C1,04,就取Buffer(15)的Buffer(0) - Buffer(3) 这4位
第二组是C1,05,就取Buffer(4) - Buffer(8)这一段。寻求一个比较好的方法,希望高手赐教。
Dim Buffer(15) as byte
从0-15的内容是
C1,04,00,08,C1,05,0A,0B,0C,C2,00,07,A1,A2,A3,A4
我想根据这个byte数组得到下面的结果,字符串获byte数组都行。
C1,04,00,08
C1,05,0A,0B,0C
C2,00,07,A1,A2,A3,A4在这里面C1和C2为标识,如果标识是C1那C1后面的一位就是这一段的长度。如果是C2那第3位就是这一段的长度。
所以上面的第一组是C1,04,就取Buffer(15)的Buffer(0) - Buffer(3) 这4位
第二组是C1,05,就取Buffer(4) - Buffer(8)这一段。寻求一个比较好的方法,希望高手赐教。
Dim Buffer(0 To 15) As BytePrivate Sub Form_Load()
Buffer(0) = &HC1
Buffer(1) = &H4
Buffer(2) = &H0
Buffer(3) = &H8
Buffer(4) = &HC1
Buffer(5) = &H5
Buffer(6) = &HA
Buffer(7) = &HB
Buffer(8) = &HC
Buffer(9) = &HC2
Buffer(10) = &H0
Buffer(11) = &H7
Buffer(12) = &HA1
Buffer(13) = &HA2
Buffer(14) = &HA3
Buffer(15) = &HA4 Dim intI As Integer
Dim intPos1 As Integer, intPos2 As Integer, intPos3 As Integer
Dim blnFirst As Boolean
Dim ArrA1() As Byte, ArrA2() As Byte, ArrA3() As Byte
For intI = 0 To 15
If Buffer(intI) = &HC1 Then
If Not blnFirst Then
intPos1 = intI
blnFirst = True
Else
intPos2 = intI
End If
End If
If Buffer(intI) = &HC2 Then
intPos3 = intI
Exit For
End If
Next
ReDim ArrA1(0 To intPos2 - intPos1 - 1)
For intI = LBound(ArrA1) To UBound(ArrA1)
ArrA1(intI) = Buffer(intPos1 + intI)
Debug.Print ArrA1(intI);
Next
Debug.Print
ReDim ArrA2(0 To intPos3 - intPos2 - 1)
For intI = LBound(ArrA2) To UBound(ArrA2)
ArrA2(intI) = Buffer(intPos2 + intI)
Debug.Print ArrA2(intI);
Next
Debug.Print
ReDim ArrA3(0 To UBound(Buffer) - intPos3 - 1)
For intI = LBound(ArrA2) To UBound(ArrA2)
ArrA3(intI) = Buffer(intPos3 + intI)
Debug.Print ArrA3(intI);
Next
End Sub