我目前正在製作一個高分表 - 從一個.csv文件中讀取時間並從最低到最高排序它們。代碼運行後,列表只能部分排序。我的錯誤在這個視覺基礎Bubblesort
這是我輸入文件時間的方式,所以問題可能在這裏。
Private Sub BeginnerInput(ByRef player() As pe_player, ByRef x As Integer)
Dim path As String = "Z:\S6\Computing Science\PROJECT\Project\BeginnerLeaderboard.csv"
Dim leaderboard As StreamReader = New StreamReader(path)
Do While leaderboard.Peek() > -1
leaderboard.ReadLine()
x += 1
Loop
leaderboard.Close()
FileOpen(1, "Z:\S6\Computing Science\PROJECT\Project\BeginnerLeaderboard.csv", OpenMode.Input)
For i = 1 To x
Input(1, player(i).playerName)
Input(1, player(i).playerTime)
player(i).position = i
Next
FileClose()
End Sub
所有的數據輸入正確,但是當它進行排序時,它會錯誤地排列數據。如果我在.csv文件中有10個條目,它將排序四個條目,以便按順序排列另外四個條目,然後其餘的條目將排在底部,所以如果我有1,2,3,4,5,6,7, 8,9,10可以將它分類爲1-4-5-8-2-3-5-7-6-10。
Private Sub BeginnerProcess(ByRef player() As pe_player, ByVal x As Integer)
Dim i As Integer
Dim j As Integer
Dim temp As Object
For i = x To 0 Step -1
For j = 0 To i - 1
If player(j).playerTime > player(j + 1).playerTime Then
temp = player(j)
player(j) = player(j + 1)
player(j + 1) = temp
End If
Next
Next
Dim k As Integer
For k = 1 To x
player(k).position = k
Next
End Sub
下面是輸出 Leaderboard
你有沒有通過您的代碼加強一個調試器,並尋找問題發生的地方? –
是的,我找不到有斷點的錯誤 –