【问题标题】:Clearing a text file in Visual basic在 Visual Basic 中清除文本文件
【发布时间】:2020-08-09 21:38:21
【问题描述】:

这是我到目前为止的代码,当用户获得新的高分时,它需要清除 txt 文件并将新的高分放入其中或替换 txt 文件中的数字。我正在努力寻找清除文件的方法。

    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

谢谢

【问题讨论】:

  • this类似问题

标签: vb.net storing-data


【解决方案1】:

假设您想在文件中保留前五名的分数。假设文件始终包含有效数据,您可以这样做:

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

通过将新分数添加到现有列表、排序然后写出前五个,您会自动删除最低分数。这意味着永远不需要实际检查新分数是否为高分。

【讨论】:

  • 我有一个单独的高分屏幕,显示简单、中等和困难的最高分,有没有办法清除或替换没有任何内容或空格的文本文件内容,然后才能添加对它有价值吗?
  • 当然可以,但是你为什么要呢?只需将您要写入的内容写入文件,之前的内容将被覆盖。您不必明确清除文件。只需像我一样拨打WriteAllLines 并传递您要编写的行。这将覆盖之前写入的任何内容。
  • 也就是说,你已经拥有的并不意味着你不能使用我提供的。你只要把它拆开一点。正如我所展示的,您仍然可以阅读高分。您可以以任何合适的方式将它们显示给用户。然后,您可以将新分数合并到高分中,就像我已经显示并再次显示给用户和/或保存一样。不要仅仅因为你不想同时使用它而忽视好的逻辑。
  • 对不起,我真的很笨,哈哈,我有这个文件。WriteAllLines("EasyHighScore.Txt", CurrentScore) 但它说 writealllines 不是 streamwriter 的成员 编辑:已修复:D 确实: File.WriteAllText("EasyHighScore.Txt", CurrentScore) 感谢所有的帮助,对不起,我太笨了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-06
相关资源
最近更新 更多