[VB.Net] Ecrire à la dernière ligne d'un fichier texte [Résolu]

Signaler
-
 lolololol -
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 :-)

Une idée ?

Merciiiiiiiiiii

A++

3 réponses

Super ! C'est exactement ce qu'il me fallait !

Voici mon code :


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



Excellent week-end,


A++
Merci beaucoup j'avais le même souci :)
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonjour,

System.IO.File.AppendText(...)
ça passe aussi, il me semble.

Il faut également importer :

Imports System
Imports System.IO


A++