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

Utilisateur anonyme - 10 déc. 2010 à 12:20 - Dernière réponse :  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 :-)

Une idée ?

Merciiiiiiiiiii

A++
Afficher la suite 

4 réponses

Répondre au sujet
+3
Utile
1
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++
Cette réponse vous a-t-elle aidé ?  
Merci beaucoup j'avais le même souci :)
Commenter la réponse de Utilisateur anonyme
NHenry 14134 Messages postés vendredi 14 mars 2003Date d'inscription 23 avril 2018 Dernière intervention - 10 déc. 2010 à 13:00
+1
Utile
Bonjour,

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

Commenter la réponse de NHenry
+1
Utile
Il faut également importer :

Imports System
Imports System.IO


A++
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.