Question

Je dois mettre à jour les étudiants score avec un nouveau score mais je ne peux pas l'obtenir pour écrire à la ligne que les étudiants score au moment. Il supprime tout le texte.

Alex, letmein, 0 David, qwerty1,0 John, mot de passe, 0 Paul, lion, 0 Luc, bennett, 0 Ronald, Mcdonald, 0 Erin, allemand, 0 Laura, en Écosse, 0 Ross, en sus, 0 Alan, boisson, 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
Était-ce utile?

La solution

Vous ne pouvez pas mettre à jour une ligne spécifique dans un fichier texte. Vous ne pouvez réécrire un fichier texte à partir de zéro ou d'ajouter à elle. Ce qui est pas ce que vous voulez ici.

Vous devez utiliser File.ReadAllLines () pour obtenir une chaîne [] avec les lignes dans le fichier texte. Rechercher l'élément spécifique dans le tableau que vous souhaitez mettre à jour. Ensuite, écrivez tout retour avec File.WriteAllLines ().

est cher bien sûr, mais votre fichier texte est petit. C'est la raison principale pour laquelle les moteurs de base de données sont très populaires.

Autres conseils

Je vois au moins un bug supplémentaire ici (une exception aurait pour effet de laisser l'ouverture de fichier). Vous devriez faire quelque chose comme ceci:

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()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top