VB.Net Écrire dans un fichier texte [Résolu]

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
cs_JeffC1977
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Salut...

Je veux écrire dans un fichier texte qui existe déjà. Dans ce fichier il peux y avoir un nombre X de ligne des texte.

Je veux donc aller écrire sur la dernière ligne du fichier, sur une nouvelle ligne.

Je ne suis pas tres habile avec le StreamWriter et il me manque quelque ligne de code pour finaliser l'écriture du fichier...

Voici ce que j'ai de fais  mais je ne sais plus quoi écrire comme code pour que ca fonctionne....
J'ai regardé quelques source sur le site mais je ne saisis pas tout... J'ai besoin de votre aide.

Merci d'avance

Private
Sub cdmSave_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles cdmSave.Click

If txtPcode.Text <>
""
And txtCoordY.Text <>
""
And txtCoordX.Text <>
""
Then
Dim ObjetFichier
As StreamWriter =
New StreamWriter(AppPath &
"\Coord.txt")

Try
ObjetFichier.Write(Label7.Text)

Finally
If
Not ObjetFichier
Is
Nothing
Then ObjetFichier.Close()

End
Try
Else
MsgBox(
"Action Impossible")

End
If
End
Sub

10 réponses

Messages postés
589
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2008
2
  Dim ObjetFichier As IO.StreamWriter = New IO.StreamWriter(AppPath & "\Coord.txt", True)

true pour ecrire a la fin et false pour tout effacer et reecrire au debut.

Indigo : Créateur de Classe VB.Net http://www.infosoft81.com/InfoSoft/Indigo/Deploiement/publish.htm
Messages postés
149
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
23 juillet 2009

Quand tu declare ton streamwriter fait:
Dim ObjetFichier
As StreamWriter =
New StreamWriter(AppPath &
"\Coord.txt", True)

et cela ajoutera des lignes à la fin de ton fichier
Messages postés
149
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
23 juillet 2009

Essaie le WriteLine qui écrit une ligne directement
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Ok merci pour le "True"....

Mais il y a rien qui s'écrit dans mon fichier text...

Le chemin est bon car au démarage du programme je fais la lecture complète de fichier texte....  Lerreur peut venir de où ????
P.S. j'ai modifié quelque peu le code...

Merci de votre aide

Private
Sub cdmSave_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles cdmSave.Click

Dim Enregistrement
As
String
If txtPcode.Text <>
""
And txtCoordY.Text <>
""
And txtCoordX.Text <>
""
Then
Dim ObjetFichier
As StreamWriter =
New StreamWriter(AppPath &
"\Coord.txt",
True)

Try
Enregistrement = txtPointSaisi.Text & Space(1) & txtCoordY.Text & Space(1) & txtCoordX.Text & Space(1) &
"0" & Space(1) & txtPcode.Text
ObjetFichier.Write(Enregistrement)

Finally
If
Not ObjetFichier
Is
Nothing
Then ObjetFichier.Close()

End
Try
Else
MsgBox(
"Action Impossible")

End
If
End
Sub
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
J'ai essayé  ObjetFichier.Writeline(Enregistrement) Au lie de ObjetFichier.Write(Enregistrement)

Marche toujours pas.

On dirais qu'il n'ouvre pas le fichier pour enregistrer.. si je vais voir le ficher texte, la date de modification ne change pas ????

Comprends-tu pourquoi ?????

Merci de ton aide
Messages postés
589
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2008
2
debug pas a pas tu verra s'il ecrit qque chose ds le fichier

Indigo : Créateur de Classe VB.Net http://www.infosoft81.com/InfoSoft/Indigo/Deploiement/publish.htm
Messages postés
149
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
23 juillet 2009

Ton code me parrais correcte pourtant
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Et bien étant donné que ca ne fonctionne pas....
Ça rentre toujours dans cette condition...
IfNot ObjetFichier IsNothingThen ObjetFichier.Close()

Donc j'ai un bug dans le code..... Mais où

Merci
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
J'ai essayé ça également

Catch exc
As Exception
MessageBox.Show(exc.Message)

Finally

Mais ca rentre jamais dedans...

Pourquoi mon code fonctionne mais ca n'enregistre pas dans mon fichier texte... ???
Le prob peut-il venir de cette ligne de code...(déclaration de la variable AppPath)

Public AppPath
As
String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)

Ici, je suis dans le Bouton Save...
Dim

ObjetFichierW
As StreamWriter =
New StreamWriter(AppPath &
"\Coord.txt",
True)

Merci de votre aide
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Ok ca marche pas sur mon émulateur mais ca marche tres bien sur mon iPaq

merci à tous