Ajouter du text a la fin d'un fichier avec la fonction streamwriter? [Résolu]

jx53 98 Messages postés lundi 17 novembre 2008Date d'inscription 4 septembre 2012 Dernière intervention - 19 janv. 2011 à 05:40 - Dernière réponse : jx53 98 Messages postés lundi 17 novembre 2008Date d'inscription 4 septembre 2012 Dernière intervention
- 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.
Afficher la suite 

9 réponses

Répondre au sujet
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 19 janv. 2011 à 12:33
+3
Utile
Bonjour,

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

Mon site
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 23 janv. 2011 à 15:33
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 23 janv. 2011 à 17:20
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
jx53 98 Messages postés lundi 17 novembre 2008Date d'inscription 4 septembre 2012 Dernière intervention - 20 janv. 2011 à 03:27
0
Utile
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?
Commenter la réponse de jx53
NHenry 14129 Messages postés vendredi 14 mars 2003Date d'inscription 19 avril 2018 Dernière intervention - 22 janv. 2011 à 01:00
0
Utile
Bonjour,

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

Mon site
Commenter la réponse de NHenry
jx53 98 Messages postés lundi 17 novembre 2008Date d'inscription 4 septembre 2012 Dernière intervention - 23 janv. 2011 à 05:28
0
Utile
j'écrit simplement: "vbNewLine" sans les guillemets ^^
Commenter la réponse de jx53
jx53 98 Messages postés lundi 17 novembre 2008Date d'inscription 4 septembre 2012 Dernière intervention - 23 janv. 2011 à 16:47
0
Utile
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.
Commenter la réponse de jx53
jx53 98 Messages postés lundi 17 novembre 2008Date d'inscription 4 septembre 2012 Dernière intervention - 24 janv. 2011 à 00:25
0
Utile
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.
Commenter la réponse de jx53
jx53 98 Messages postés lundi 17 novembre 2008Date d'inscription 4 septembre 2012 Dernière intervention - 24 janv. 2011 à 00:38
0
Utile
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 :)
Commenter la réponse de jx53

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.