Frage

Ich brauche die Schüler mit einer neuen Partitur zu aktualisieren, aber ich kann es zu schreiben, um die Linie, dass die aktuellen Punktzahl Studenten es zu bekommen. Es löscht nur den gesamten Text.

Alex, letmein, 0 David, qwerty1,0 John, Passwort, 0 Paul, Löwe, 0 Luke, bennett, 0 Ronald, Mcdonald, 0 Erin, Deutsch, 0 Laura, Schottland, 0 Ross, extra, 0 Alan, Getränk, 0

Try
 fileName = "C:\Documents and Settings\Student\Desktop\Task10\primary4.txt"
 Dim sWriter As New System.IO.StreamWriter(fileName) 
           index = lblPosition.Text
            sWriter.Write(username(index))
            sWriter.Write(",")
            sWriter.Write(password(index))
            sWriter.Write(",")
            sWriter.WriteLine(updatescore(position)
            sWriter.Close()
            MessageBox.Show("Writing file to disk")
            Me.Close()
     Catch ex As Exception
     MessageBox.Show(ex.Message)
End Try
War es hilfreich?

Lösung

Sie können nicht eine bestimmte Zeile in einer Textdatei aktualisieren. Sie können nur eine Textdatei von Grund auf neu zu schreiben oder ihm anhängen. Und das ist nicht das, was Sie hier wollen.

Sie haben File.ReadAllLines () verwenden, um eine Zeichenfolge zu erhalten [] mit den Zeilen in der Textdatei. Suchen Sie das spezifische Element in dem Feld, das Sie aktualisieren möchten. Dann schreiben sie alle wieder mit File.WriteAllLines ().

Das ist teuer natürlich, aber die Textdatei ist klein. Dies ist der Hauptgrund, warum Datenbank-Engines sind sehr beliebt.

Andere Tipps

Ich sehe zumindest einen zusätzlichen Fehler in hier (eine Ausnahme in dem Verlassen der Datei öffnen würde). Sie sollten so etwas wie dies stattdessen tun:

fileName = "C:\Documents and Settings\Student\Desktop\Task10\primary4.txt"
Dim sWriter As IO.StreamWriter
Try 
    sWriter = New IO.StreamWriter(fileName, True) 
    index = lblPosition.Text       
    sWriter.Write(username(index))
    sWriter.Write(",")
    sWriter.Write(password(index))
    sWriter.Write(",")
    sWriter.WriteLine(updatescore(position)
    MessageBox.Show("Writing file to disk")
Catch ex As Exception
    MessageBox.Show(ex.Message)
Finally
    sWriter.Close()
End Try
Me.Close()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top