Utilisateur anonyme
-
Modifié le 10 déc. 2010 à 13:14
lolololol -
25 juil. 2015 à 16:29
Hello,
Je fais un système de log dans mon programme, et j'aimerais qu'a chaque log, il rajoute une ligne à la fin d'un fichier texte.
Pour écrire dans mon fichier txt, je fais ceci :
Try
'Instanciation du StreamWriter avec passage du nom du fichier
Dim monStreamWriter As StreamWriter = New StreamWriter(pathProgramme & "\logs.txt")
'Ecriture du texte dans votre fichier
monStreamWriter.WriteLine(text)
'Fermeture du StreamWriter (Trés important)
monStreamWriter.Close()
Catch ex As Exception
'Code exécuté en cas d'exception
End Try
Avec ce code, il remplace à chaque fois ce qu'il y a dans mon fichier texte. Hors je veux ici qu'il rajoute chaque fois une nouvelle ligne sans effacer le reste ?
J'ai trouvé des sources sur Internet mais dans toutes ces sources ils récupéraient d'abord tout le fichier texte dans une variable, pour ensuite y ajouter la nouvelle ligne, puis tout ré enregistrer.
Avec quelques milliers de ligne de code, ça risque de vite prendre de la ressource pour pas grande chose :-)
Dim path As String = "c:\log.txt"
Dim sw As StreamWriter
Try
' This text is added only once to the file.
If File.Exists(path) = False Then
' Create a file to write to.
sw = File.CreateText(path)
sw.WriteLine(text)
sw.Flush()
sw.Close()
End If
' This text is always added, making the file longer over time
' if it is not deleted.
sw = File.AppendText(path)
sw.WriteLine(text)
sw.Flush()
sw.Close()
' Open the file to read from.
Dim sr As StreamReader = File.OpenText(path)
Dim s As String
Do While sr.Peek() >= 0
s = sr.ReadLine()
Console.WriteLine(s)
Loop
sr.Close()
Catch ex As Exception
'Code exécuté en cas d'exception
End Try
25 juil. 2015 à 16:29