Ajouter du text a la fin d'un fichier avec la fonction streamwriter?

Résolu
jx53 Messages postés 98 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 4 septembre 2012 - 19 janv. 2011 à 05:40
jx53 Messages postés 98 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 4 septembre 2012 - 24 janv. 2011 à 00:38
Bonjour, j'éssais de faire que mon programme soi en mesure d'ajouter du texte à la fin d'un fichier .txt déjà existant mais avec la fonction Streamwriter, je peut seulement écraser le fichier déjà existant, pourriez-vous m'aider s.v.p. ? mon code est le suivant:

Dim filename As String
filename = "c:\log_" & DateValue(Now) & ".txt"

Try

Dim SW As StreamWriter
SW = New StreamWriter(filename)
SW.Write(log.Text)
SW.Close()
Catch ex As Exception

End Try

donc j'aimerais faire que au lieu d'écraser le fichier pour en créer un nouveau avec le contenu de mon textbox appelé log, il ne fasse qu'ajouter a la fin du fichier se que j'écrit dans ma textbox.
Aussi, avec cette fonction, même si je saute des lignes dans ma textbox (multiligne) le résultat dans le fichier txt est un texte tout sur la même ligne, j’aimerais aussi remédier a cela.

merci d'avance de l'aide que vous m'apporterez.

9 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
19 janv. 2011 à 12:33
Bonjour,

Regardes la fonction AppendAllText, je suppose que ça résoudra ton pb.

Mon site
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
23 janv. 2011 à 15:33
Bonjour,

Evite VBNewLine, c'est plus lent et plus déprécié que VBCrLf (qui est la même chose), on préfère Environment.NewLine.

Mais j'aimerais voir le code, car il doit y avoir un pb, ça devrait fonctionner sans pb.

Mon site
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
23 janv. 2011 à 17:20
Bonjour,

J'ai testé ce code :
IO.File.AppendAllText("test.txt", "Message1" + Environment.NewLine + Now.ToString("yyyy-MM-dd_HH-mm-ss") + Environment.NewLine + "Message2")

Résultat :
Message1
2011-01-23_17-19-08
Message2Message1
2011-01-23_17-19-19
Message2Message1
2011-01-23_17-19-31
Message2

Donc, c'est bon, ça passe bien, ton erreur se trouve ailleurs.

Mon site
3
jx53 Messages postés 98 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 4 septembre 2012
20 janv. 2011 à 03:27
cool, merci de ta réponse Nhenry, cette méthode résout disons 50% du problème, cela écrit a la fin du fichier comme voulu mais les saut de ligne ne sont toujours pas pris en compte, peut-être est-ce moi qui ne les introduit pas correctement mais dan mon textbox les saut de ligne sont affiché mais pas dans le fichier .txt.

Quelqu’un pourrais m'aider svp?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 janv. 2011 à 01:00
Bonjour,

Peux-tu montrer comment tu ajoutes les retours à la ligne ?

Mon site
0
jx53 Messages postés 98 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 4 septembre 2012
23 janv. 2011 à 05:28
j'écrit simplement: "vbNewLine" sans les guillemets ^^
0
jx53 Messages postés 98 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 4 septembre 2012
23 janv. 2011 à 16:47
et bien ces pas compliqué, j'ai du code qui ajoute du texte dans un textbox appelé log selon les touche que l'on appui et un timmer qui enregistre le contenu de se textbox dans un fichier txt grâce au code suivant :


Dim filename As String
filename = "c:\log_" & DateValue(Now) & ".txt"

Try

File.WriteAllText(filename, log.Text)


Catch ex As Exception

End Try

et donc voila j'ai utilisé Environment.NewLine pour introduire mes saut de ligne et ça ne fonctionne toujours pas.
0
jx53 Messages postés 98 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 4 septembre 2012
24 janv. 2011 à 00:25
bon, en effet se code fonctionne cher moi aussi, donc je ne voie qu'une seule explication, cela fonctionne car on lui dit direct quoi écrire au lieu d'écrire dans un textbox pour ensuite enregistrer le contenu du textbox. merci de l'aide je vais éssailler d'enregistrer les touche direct au lieu de passer par un textbox, je vous en redonne des nouvelles.
0
jx53 Messages postés 98 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 4 septembre 2012
24 janv. 2011 à 00:38
encore une fois, merci beaucoup NHenry! le fait de ne plus passer par un textbox a réglé le probleme! maintenant au lieu que les touche soi capté et écrite dan le textbox pour ensuite q'un timmer enregistre le contenu du textbox toute les 5 seconde, les touche sont stocké dans une variable string qui elle s'enregistre dans mon fichier txt chaque fois qu'elle est modifié donc chaque fois qu'une touche est appuyé ^^.

Donc voila merci de ta patience :)
0
Rejoignez-nous