【发布时间】:2019-06-22 08:40:14
【问题描述】:
我有这个文本文件:
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)
它继续向下文本文件,但如果 line = "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
【问题讨论】:
标签: vb.net sorting multidimensional-array streamreader