Необработанное исключение типа "system.indexoutofrangeexception" произошло в windowsapplication1.exe дополнительная информация: индекс находился за пределами массива.
dim ECUData(27) as integer dim RXArray(27) as integer
он показывает мне ошибку на 12-м индексе ECUdata и Rxarray
Я нахожусь в самом начале и действительно пытаюсь научиться программированию.
Что я уже пробовал:
Private Sub Receiver(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles COMPorts.DataReceived If COMPorts.IsOpen = False Then COMPorts.Open() End If Dim RXByte As Byte RXCnt = 0 Do RXByte = COMPorts.ReadByte RXArray(RXCnt) = Chr(RXByte) ' Convert each byte to two hexadecimal characters RXCnt = RXCnt + 1 ECUData(RXCnt) = RXByte <---------Getting Error in This Line Loop Until (COMPorts.BytesToRead = 0) ' Don't return if more bytes have become available in the meantime '----- End of communication protocol handling ------------------------------------------------------------- Me.Invoke(New MethodInvoker(AddressOf Display)) ' Start "Display" on the UI thread End Sub
Dave Kreskowiak
Вы смотрели на стоимость RXCnt? Держу пари, что его 27, когда ошибка бросает. Элементы в массиве, который вы выделили, пронумерованы от 0 до 26, Нет 27.
Richard Deeming
Это ... VB.NET, таким образом, массивы на самом деле имеют 28 элементов от 0 до 27. :)
Dave Kreskowiak
<headdesk>еще не заходил VB.NET уже довольно давно.