Для страницы с рекордами в моей игре я беру от текстового файла от 1 до 5 наивысших значений, а затем отображаю их в текстовом поле, но у меня возникает проблема с тем, что мой код видит каждую цифру как отдельный номер, примером является то, что 43 будет считаться как 4 и 3. Это означает, что моя страница с высоким уровнем никогда не показывает оценку выше 9. Текстовый файл находится в резервных копиях, если программа содержит новый номер в каждой строке.Заказ номеров с наивысшим наименьшим
Как исправить это?
Код ниже.
'Part 1: Determine Resource File Path based on Debugging mode or Published mode
Dim ResourceFilePathPrefix As String
If System.Diagnostics.Debugger.IsAttached() Then
'In Debugging mode
ResourceFilePathPrefix = System.IO.Path.GetFullPath(Application.StartupPath & "\..\..\resources\")
Else
'In Published mode
ResourceFilePathPrefix = Application.StartupPath & "\resources\"
End If
'Part 2: Write the text file
Dim lines() As String = File.ReadAllLines(ResourceFilePathPrefix & "scores.txt")
Array.Sort(lines)
Array.Reverse(lines)
P1Score.Text = lines(0)
P2Score.Text = lines(1)
P3Score.Text = lines(2)
P4Score.Text = lines(3)
P5Score.Text = lines(4)
Ваша первая ошибка состоит в том, чтобы верить, что список номеров хранятся в виде строк будет производить тот же результат в виде списка номеров, сохраненных в виде чисел при сортировке. –
Возможный дубликат [Сортировка элементов списка в численном выражении в VB] (http://stackoverflow.com/questions/2157383/sorting-listbox-items-numerically-in-vb) – usr2564301
Вы используете 'Sort' для текстовых элементов, так что да, вы получаете то, о чем просите. Сделайте вместо этого массив целых чисел. – usr2564301