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 :(得分:5)
您对阵列的分配是错误的。这样:
etudianttemp() = tableautemp(i).Split(";"c)
应该是:
etudianttemp = tableautemp(i).Split(";"c)
你得到的错误是因为它看起来像你试图分配给数组中的项而不是数组本身,然后你需要提供项的索引。错误消息仅基于分配的左侧是错误的事实,它没有考虑到右侧。
答案 1 :(得分:0)
删除etudianttemp() = ...
=>中的括号etudianttemp = ...
中解释的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
。顺便说一句,如果您删除了代码中的某些行来本地化您的问题,请放弃这个答案:)。
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
如果你没有固定大小的J维度,你应该在运行时通过首先解析每个tableautemp(i)来设置tailleDimensionJ,只保留最大的项目数。
tableau
[FR] Vous devriez initialiser la taille de votre variable i
avant de lui assigner des valeurs dans la boucleforàl'aidede j
et {{1 }}。 Bien entendu,si vousaviezsupplédeslignes de code pour bien cibler le soucis,veuillez ignorer cette remarque :)