Ich habe ein Array von Bytes mit einer unbekannten Größe und ich möchte alle vier Bytes in eine ganze Zahl konvertieren. Das Problem ist die unbekannte Größe als Sachen wie diese nicht funktionieren:Split-Byte-Array (unbekannte Größe) in Stücke mit Resten
Private Sub(ByVal list() as Byte)
For i = 0 To list.Count - 1 Step 4
Next
Als ob die Größe nicht divideable ist es eine Ausnahme verursacht durch 4. Also wie kann ich das Array von Bytes in Stücke von vier Bytes aufteilen?
Dies ist mein aktueller Versuch, aber es verursacht eine Ausnahme.
Public Function MakeByteChunks(ByVal pByte() As Byte, ByVal pSize As Integer) As List(Of Byte())
Dim chunkList As New List(Of Byte())
For i = 0 To pByte.Count - 1
Dim tmpchunkList(pSize) As Byte
Array.Copy(pByte, i, tmpchunkList, 0, pSize)
chunkList.Add(tmpchunkList)
Next
Return chunkList
End Function
wenn ich versuche, es auf ganze Zahlen zu konvertieren:
Dim splittedArray = MakeByteChunks(list, 1)
For i = 0 To splittedArray.Count - 1
Dim Value = BitConverter.ToInt32(splittedArray(i), 0)})
Next
Das hängt davon ab, was Sie in der Schleife tun. Der Code, den Sie uns gerade zeigen, scheint vollkommen sicher zu sein. – derpirscher
Wie gesagt, ich versuche, alle vier Bytes in eine ganze Zahl zu konvertieren. Das ist, weil ich Integer aus einem Bytearray lesen möchte. Und BitConverter.ToInt32 nimmt nur den Offset als Parameter. – Baldik
Dann zeigen, wie machst du es – derpirscher