Извините за ужасную формулировку моего последнего вопроса, я был в полусонном состоянии, и было полночь. На этот раз я постараюсь быть более ясным.Ошибка Array за пределами границ VB
В настоящее время я пишу код для мини-сканера штрих-кодов и программы управления запасами. У меня есть вход и все разобрано, но проблема с моими массивами.
В настоящее время я пытаюсь извлечь содержимое файла запаса и отсортировать его в таблицах продуктов. Это мой текущий код для получения данных:
Using fs As StreamReader = New StreamReader("The File Path (Is private)")
Dim line As String = "ERROR"
line = fs.ReadLine()
While line <> Nothing
Dim pos As Integer = 0
Dim split(3) As String
pos = products.Length
split = line.Split("|")
productCodes(productCodes.Length) = split(0)
products(products.Length, 0) = split(1)
products(products.Length, 1) = split(2)
products(products.Length, 2) = split(3)
line = fs.ReadLine()
End While
End Using
Я убедился, что путь к файлу делает, на самом деле, перейдите к файлу. Я просмотрел отладочную информацию, чтобы найти, что все данные проходят в мою таблицу «split». Ошибка вызывается, как только я пытаюсь передать данные.
Это где я объявляю две таблицы используются:
Dim productCodes() As String = {}
Dim products(,) As Object = {}
Может кто-нибудь, пожалуйста, объясните, почему это происходит?
Заранее спасибо ~ Hydro
создавать пустые массивы так что любой доступ индекс будет вне пределов, дать их требуемый размер (или лучше использовать изменяемый размер контейнера) – Sehnsucht
Используйте 'List (Of String)' для 'Dim productCodes() As String = {}' и создайте класс, который представляет ваши данные вместо использования двумерного массива. Затем вы можете использовать «Список (Of YourData)» – Fabio
Поскольку вам необходимо предоставить размер массива перед чтением файла, массивы будут работать только в том случае, если вы всегда будете иметь одинаковое количество строк. – Fabio