VB.Net ÉCrire dans un fichier texte

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 27 août 2007 à 14:28
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 - 28 août 2007 à 20:00
http://www.vbfrance.com/auteurdetail.aspx?ID=464094
 Salut...

Je veux écrire dans un fichier texte qui existe déjà. Dans ce fichier il peut 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...

Jusqu'à présent, il n'enregistre rien dans le fichier texte

Merci d'avance

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.WriteLine(Enregistrement)

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

End
Try
Else
MsgBox(
"Action Impossible")

End
If
End
Sub

8 réponses

Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
27 août 2007 à 14:32
Je pense qu'il te manque
ObjetFichier.Flush()
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
27 août 2007 à 14:39
Je mets ça où ?
0
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
27 août 2007 à 14:43
soit après
ObjetFichier.WriteLine(Enregistrement)

ObjetFichier.Flush()

ou bien il me semble qu'a la place

ObjetFichier.Close()

On a 
ObjetFichier.Dispose() -> qui correspond a Flush + Close.

En fait tu le met ou tu veux - donc soit après chaque WriteLine soit une fois que toutes tes lignes sont écrites
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
27 août 2007 à 14:51
Merci pour ta réponse mais...

Ta premiere option = Ça change rien, ça n'écrit pas dans le fichier
et pour la deuxième option je n'ai pas la posibilité de prendre le "Dispose" je n'ai que
AutoFlush
Close
Write
Flush
WriteLine

Comment je fais dans le Debug pour savoir s'il semble vouloir écrire une ligne de texte.. La seule variable que je peux vérifier est ma varaiable "Enregistrement" mais je ne peux voir que vaut ObjetFichier.WriteLine(Enregistrement).
C'est normale du fait que c'est un Objet ???

merci encore
0

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

Posez votre question
Baguauda Messages postés 219 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 28 novembre 2008 1
27 août 2007 à 15:08
J'oubliais qu'il n'y avait pas de Dispose dans le CF.

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

'Place Un catch pour recupérer l'erreur - Je ne me souviens plus très bien de la syntaxe mais ca doit être dans le style
Catch Exception ex
    messagebox.show(ex.Message)

Finally
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
27 août 2007 à 15:14
Ouin et bien j'y comprends rien...

Ça ne sort pas d'erreur ????
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
27 août 2007 à 17:40
ok ca marche...

Ca marche pas sur l'émulateur et je ne saisi pas pourquoi...
Mais ca marche sur mon iPAQ

Merci de ton aide...
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
28 août 2007 à 20:00
open
write ou writeln
flush 'Ecrit réellement les données dans le fichier (car elle ne sont en mémoire ) donc à éxécuter soit sur un bloc, soit après chaque ligne
close

Pour la procédure
Try
....
Catch ex as Exception
    msgbox(ex.Message)
Finally
......
End try

Pour l'émulateur, normalement cela doit fonctionner, vérifie les chemins et au besoin raffraichie ta vue dans l'explorateur

Le savoir ne sert que si il est partagé par tous
0
Rejoignez-nous