У меня есть этот текстовый файл:
Paul George|2.87|29
Stephen Curry|2.85|28
Jamal Murray|2.72|21
PJ Tucker|2.72|11
Kyle Lowry|2.61|15
Game
Paul George|g2d|g2p
Stephen Curry|g2d|g2p
Jamal Murray|g2d|g2p
PJ Tucker|g2d|g2p
Kyle Lowry|g2d|g2p
Game
Paul George|g3d|g3p
Stephen Curry|g3d|g3p
Jamal Murray|g3d|g3p
PJ Tucker|g3d|g3p
Kyle Lowry|g3d|g3p
Game
Paul George|g4d|g4p
Stephen Curry|g4d|g4p
Jamal Murray|g4d|g4p
PJ Tucker|g4d|g4p
Kyle Lowry|g4d|g4p
Я хочу добавить элементы в массивы
Names(name, gamenumber)
Distance(distance, gamenumber)
Points(Points, gamenumber)
с первым индексом, представляющим данные для игрока, а вторым - с игрой, данные которой взяты из
Например,
distance(1, 0) = 2.87
distance(5, 0) = 2.61
distance(1, 1) = g2d
Так что индексы совпадают с игроком для данного номера игры.
Пока у меня есть:
Private Sub openFile_Click(sender As Object, e As EventArgs) Handles openFile.Click
OpenFileDialog.ShowDialog()
Dim strFileName = OpenFileDialog.FileName
Dim objReader As New System.IO.StreamReader(strFileName)
Dim textline As String
Dim Names(100, 3) As String
Dim Distance(100, 3) As String
Dim Points(100, 3) As String
Dim Count As Integer = 0
Dim GameNumber As Integer = 0
Do While objReader.Peek() <> -1
textline = objReader.ReadLine() & vbNewLine
If textline = "Game" Then
GameNumber = GameNumber + 1
Else
Dim parts() As String = textline.Split("|")
Names(Count, GameNumber) = parts(0)
Distance(Count, GameNumber) = parts(1)
Points(Count, GameNumber) = parts(2)
Count = Count + 1
End If
Loop
End Sub
Части каждой линии разделяются на |, помещая их в «части», затем он назначает три части, которые он получает из линии (имя игрока, расстояние и очки), в отдельные массивы как
Names(<Name>, 0)
Distance(<Distance>, 0)
Points(<Points>, 0)
Он продолжается вниз по текстовому файлу, но если строка = "Game", он должен увеличить значение GameNumber, а затем перейти к следующей строке, продолжая добавлять данные вместо
Names(<Name>, 1)
Distance(<Distance>, 1)
Points(<Points>, 1)
и так далее, но мой код не работает. После того, как все заработало, я распечатал желаемую игровую статистику для игроков на странице в списке с чем-то вроде:
For n = 0 To Count - 1
lstNames.Items.Add(Names(n, GameWanted))
lstNames.Items.Add(" ")
lstDistance.Items.Add(Distance(n, GameWanted) + " Miles")
lstDistance.Items.Add(" ")
lstPoints.Items.Add(Points(n, GameWanted))
lstPoints.Items.Add(" ")
Next