Очистка текстового файла в Visual Basic - PullRequest
0 голосов
/ 26 апреля 2020

Это код, который у меня есть до сих пор. Когда пользователь получает новый высокий балл, ему необходимо очистить текстовый файл и поместить новый высокий балл в него или заменить число в текстовом файле. Я изо всех сил пытаюсь найти способ очистить файл.

    ElseIf HighscoreDifficulty = "E" Then
        EasyHighScore = My.Computer.FileSystem.ReadAllText("EasyHighScore.txt")
        If CurrentScore > EasyHighScore Then
            NewHighScore.Visible = True
            file = My.Computer.FileSystem.OpenTextFileWriter("EasyHighScore.txt", True)
            file.WriteLine(CurrentScore)
            file.Close()
        Else
            NoNewHighScore.Visible = True
        End If

Спасибо

1 Ответ

0 голосов
/ 26 апреля 2020

Допустим, вы хотите сохранить пять лучших результатов в файле. Предполагая, что файл всегда содержит действительные данные, вы можете сделать это следующим образом:

Private Sub SaveHighScore(score As Integer)
    Const FILE_PATH = "file path here"
    Const MAX_SCORE_COUNT = 5

    'Read the lines of the file into a list of Integer values.
    Dim scores = File.ReadLines(FILE_PATH).
                      Select(Function(s) CInt(s)).
                      ToList()

    'Append the new score.
    scores.Add(score)

    'Sort the list in descending order.
    scores.Sort(Function(x, y) y.CompareTo(x))

    'Write up to the first five scores back tot he file.
    File.WriteAllLines(FILE_PATH,
                       scores.Take(MAX_SCORE_COUNT).
                              Select(Function(i) i.ToString()))
End Sub

Добавив новый счет в существующий список, отсортировав и записав первые пять, вы автоматически отбрасываете самый низкий счет , Это означает, что никогда не нужно проверять, является ли новый результат высоким или нет.

...