4

私はアーケード ゲームを開発してきましたが、すべての優れたアーケード ゲームにはスコアボードが組み込まれており、プレイヤーは誰がより良いスコアを出したかを確認できます。私の問題は、新しいスコアラインを入力するたびに、テキスト ファイル内の以前の行がすべて削除されることです。私が使用しているコードは次のとおりです。

    If player1 > 25 Then

        objReader.Close()
        MsgBox("O " + jogador1 + " ganhou.")
        tab1.Enabled = False

        Dim wrtScore As String = "C:\Documents and Settings\Joao\My Documents\Visual Studio 2010\Projects\flaghunter\flaghunter\deposito\scores.txt"
        Dim objWriter As New System.IO.StreamWriter(wrtScore)

        wrtScore = wrtScore.Trim()

        objWriter.WriteLine(jogador1 + " " + Str(player1))

        objWriter.Close()


    End If

ご清聴ありがとうございました。

4

3 に答える 3

10

代わりにFile.AppendTextを使用します。

    // This text is always added, making the file longer over time
    // if it is not deleted.
 Using sw As StreamWriter = File.AppendText(path)
        sw.WriteLine("This")
        sw.WriteLine("is Extra")
        sw.WriteLine("Text")
 End Using

これにより、最初にファイルが存在しない場合はファイルが作成され、ファイルが既に存在する場合はテキストが追加されます

于 2012-04-07T17:19:13.863 に答える
8

Dim objWriter As New System.IO.StreamWriter(wrtScore, TRUE) ファイルに追加する:D

于 2012-04-07T17:19:16.890 に答える
0

ファイルの先頭に追加し、コンテンツをロードしてからファイルを上書きし、コンテンツを下部にドロップします。何かのようなもの:

Dim sr as New StreamReader("path/to/file.ext")
Dim text as String = sr.ReadToEnd()
sr.Close()
Dim sw as New StreamWriter("path/to/file.ext")
sw.WriteLine("New stuff")
sw.WriteLine("More New Stuff")
sw.WriteLine(text) ' Add original content back
sw.Close()
于 2015-11-11T14:24:54.053 に答える