ошибка при заполенении массива

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

ошибка при заполенении массива

Сообщение AnarCky » 25.07.2007 (Ср) 10:07

Пишу функцию которая в ходе выполнения должна заполнить строковый массив.
В строчке помеченной звездочкой возникает ошибка "Object reference not set to an instance of an object".
Объясните мне пожалуйста природу этой ошибки, т.к. уже не первый раз сталкиваюсь а в чем суть я хз.
И еще такая штука. я в ходе выполнения смотрю значения переменных ch и ch2. если в строку ввожу HCl, то они равны соответственно "H"с и "C"c.
Что значат эти символы 'c'?

Код: Выделить всё
    Private MMass As Decimal, str, elems(), el_in_tab(), values() As String, ch, ch2, chArr() As Char, _
            reader As StreamReader

    Private Function findMass() As Decimal

        If System.IO.File.Exists("table.txt") Then
            reader = System.IO.File.OpenText("table.txt")
            str = crtbFor.Text
            chArr = str.ToCharArray

            For i As Integer = 0 To chArr.Length - 1
                ch = chArr(i)
                ch2 = chArr(i + 1)
                If ch2.IsLower(ch2) = True Then
                    elems(i) = CStr(ch) & CStr(ch2) & " "
                Else
                    elems(i) = CStr(ch) & " "                                        '*
                End If
            Next

            For i As Integer = 0 To elems.Length - 1
                el_in_tab = Regex.Split(reader.ReadToEnd, vbCrLf)
                For Each el As String In el_in_tab
                    If el <> "" Then
                        values = Regex.Split(el, " - ")

                        If el.IndexOf(elems(i)) = -1 Then
                            GoTo nxt
                        Else
                            MMass += values(1)
                        End If

                    Else
                        Exit Function
                    End If
                Next
nxt:        Next

        Else
            MessageBox.Show("К сожалению не найден файл table.txt.", "Ошибка", _
                MessageBoxButtons.OK, MessageBoxIcon.Error, _
                MessageBoxDefaultButton.Button1)
        End If

        Return MMass

    End Function
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 25.07.2007 (Ср) 10:18

символы 'c означают, что сие есть Char а не String.

А по поводу ошибки у тебя массив elems с незаданной размерностью, вот отсюда и ошибка
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 108

    TopList