Ich mache derzeit eine Highscore-Tabelle - Lesen der Zeiten aus einer .csv-Datei und Sortieren von der niedrigsten zum höchsten. Die Liste wird nur teilweise sortiert, nachdem der Code ausgeführt wurde.Wo ist mein Fehler in diesem visuellen Basis Bubblesort
Dies ist die Art, wie ich die Zeiten aus der Datei eingeben, so dass das Problem hier sein kann.
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
Alle Daten korrekt eingegeben, aber wenn es sortiert wird, werden die Daten falsch sortiert. Wenn ich 10 Einträge in der .csv-Datei habe, sortiert er vier Einträge, um weitere vier Einträge zu sortieren, dann wird der Rest unten sortiert. Wenn ich also die Nummern 1,2,3,4,5,6,7 hätte, 8,9,10 könnte es als 1-4-5-8-2-3-5-7-6-10 sortieren.
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
Hier ist der Ausgang Leaderboard
Haben Sie durch den Code trat ein Debugger und gesucht, wo das Problem auftritt? –
Ja, ich kann den Fehler nicht mit einem Breakpoint –