2014-11-09 4 views
0
Dim tableautemp() As String = IO.File.ReadAllLines(nomfichier) 
    Dim etudianttemp() As String 

    For i As Integer = 0 To tableautemp.Length - 1 
     etudianttemp() = tableautemp(i).Split(";"c) 
     For j As Integer = 0 To 6 
      tableau(j, i) = etudianttemp(j) 
     Next 
    Next 

Я хочу прочитать файл и поместить строки на вкладку 1d, а затем разделить каждую строку на другой вкладке 1d, а затем добавить все на вкладку 2d , Но я получаю «Число индексов меньше, чем количество измерений индексированного массива». Я не понимаю: sЧисло индексов меньше количества измерений индексированного массива

+0

Добро пожаловать. Кроме того, поскольку вы новичок в StackOverflow, я хотел бы сообщить вам, что вы можете продвигать хорошие ответы и принимать ответ, который помог вам наиболее эффективно, установив отметку рядом с ответом. На этом сайте верхний или принятый ответ считается «спасибо». –

ответ

5

Ваше назначение массива неверно. Это:

etudianttemp() = tableautemp(i).Split(";"c) 

должно быть:

etudianttemp = tableautemp(i).Split(";"c) 

ошибка, что вы получили, потому что это выглядит, как вы пытаетесь присвоить элементу в массиве, а не сам массив, а затем вам нужно будет для указания индекса элемента. Сообщение об ошибке основано только на том, что левая сторона задания неверна, но не учитывает правую сторону.

0

Снимите скобку в etudianttemp() = ... =>etudianttemp = ..., как описано в Guffa's answer (не забудьте отметить свой ответ, как принято)


Я просто добавлю, что вы должны инициализации ваш размер tableauдо, пытающийся присвоить значения в цикле с использованием i и j. Кстати, если вы удалили некоторые строки в своем коде, чтобы локализовать свою проблему, просто отбросьте этот ответ :).

Dim tableautemp() As String = IO.File.ReadAllLines(nomfichier) 
    Dim etudianttemp() As String 
    Dim tailleDimensionJ As Int32 = 6 ' edit accordingly.. Caution: Base 0 => 7 items 

    Redim tableau(tailleDimensionJ, tableautemp.length - 1) ' here ! 

    For i As Integer = 0 To tableautemp.Length - 1 
     etudianttemp = tableautemp(i).Split(";"c) 
     For j As Integer = 0 To tailleDimensionJ ' and here ! 
      tableau(j, i) = etudianttemp(j) 
     Next 
    Next 

Если вы не имеете размера фиксированного размера J, вы должны установить tailleDimensionJ во время выполнения путем разбора каждого tableautemp (I), первый, только сохраняя максимальное количество элементов.

Dim tableautemp() As String = IO.File.ReadAllLines(nomfichier) 
    Dim etudianttemp() As String 
    Dim tailleDimensionJ As Int32 = 0 

    For i As Integer = 0 To tableautemp.Length - 1 
     etudianttemp = tableautemp(i).Split(";"c) 
     If tailleDimensionJ < (etudianttemp.Length - 1) 
      tailleDimensionJ = etudianttemp.Length - 1 
     End If 
    Next 

    Redim tableau(tailleDimensionJ, tableautemp.length - 1) 

    For i As Integer = 0 To tableautemp.Length - 1 
     etudianttemp = tableautemp(i).Split(";"c) 
     For j As Integer = 0 To etudianttemp.Length - 1 ' <- change this 
      tableau(j, i) = etudianttemp(j) 
     Next 
    Next 

[FR] Vous devriez инициализатора ла Taille де Votre переменная tableauавант де луй Assigner де Valeurs данс ла букле для à l'Aide-де-i эт j. Bien entendu, si vous aviez supprimé des lignes de code pour bien cibler le soucis, veuillez ignorer cette remarque :)

Смежные вопросы