Gestion de fichier sur vb dot net

heiven Messages postés 21 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 8 février 2011 - 1 déc. 2008 à 12:48
code86 Messages postés 1 Date d'inscription samedi 27 décembre 2008 Statut Membre Dernière intervention 27 décembre 2008 - 27 déc. 2008 à 12:28
bonjour a tous le monde donc sans tarder voila ma question

j'essaie de cree un petit programe en utilisant un fichier text ou j'ajoute les donnée le problém c'est que mes donné
ne se stocke pas just la premier line et quand j'ajoute une autre line elle ecrase la précedent


le code et long et je sais pas comment poster le programme s'il a quelqu'un qui peux m'aider je serais reconaissan


je suis un débutant dans le domain mes salutation

9 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 déc. 2008 à 14:07
Vérifie le mode d'ouverture de ton fichier texte.

Probablement que tu le ferme après chaque enregistrement et donc que tu le réouvre pour enregistrer une nouvelle ligne. Cette réouverture, tu dois sans doute la faire en mode écrasement, c'est à dire que à chaque fois que tu ouvre ton fichier, il est vidé de son contenu. Il faut l'ouvrir en mode Ajout (Append en anglais)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
1 déc. 2008 à 16:08
Salut,

Si tu mettais le code te permettant d'écrire dans un fichier. On serait mieux à même de t'aider Non ?

++

Fauve
<hr size="2" width="100%" />Pensez : Réponse Acceptée 
0
heiven Messages postés 21 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 8 février 2011
1 déc. 2008 à 16:14
voila le code qui me permet d'ecrire
Public

Function lecture()
As
Object()

Dim Line
As
String

Dim i
As
Integer = 0

ReDim t(Li)FileOpen(1,

"hotel.txt", OpenMode.Input)

While
Not EOF(1)Line = LineInput(1)

t(i) = Line

i = i + 1

End
WhileFileClose(1)

Return (t)

End
Function
et voila celui qui me permet d'ajouter
Private

Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickt = lecture()

Dim line
As
String

If L.Checked =
True
Thenline = N.Text &

";" & C.Text &
";" & P.Text &
";" & CA.Text &
";" & L.TextLi = Li + 1

t(Li - 1) = line

ecriture()

End
If

If O.Checked =
True
Thenline = N.Text &

";" & C.Text &
";" & P.Text &
";" & CA.Text &
";" & O.TextLi = Li + 1

t(Li - 1) = line

ecriture()

End
If

End
Sub
merci d'avance
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
1 déc. 2008 à 16:37
Salut,

Ton soucis c'est lors de l'écriture ou lors de la lecture du fichier ?

Tu indiques comment tu lis mais pas comment tu écris

Donc si tu peux mettre la fonction ecriture() ça serait bien

<hr size="2" width="100%" />Pensez : Réponse Acceptée 
0

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

Posez votre question
heiven Messages postés 21 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 8 février 2011
1 déc. 2008 à 16:42
voila ma fonction d'ecriture
Public

Sub ecriture()

Dim i
As
Integer = 0FileOpen(1,

"hotel.txt", OpenMode.Output)

For i = 0
To Li - 1Print(1, t(i) & vbCrLf)

NextFileClose(1)

End
Sub
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
1 déc. 2008 à 16:49
Donc,

Le soucis que tu rencontres c'est que quand tu fais le premier enregistrement, tout se passe bien mais quand tu fais le deuxième, ça écrase la 1° ligne pour mettre celle du deuxième enregistrement...

C'est bien ça ?

<hr size="2" width="100%" />Pensez : Réponse Acceptée 
0
heiven Messages postés 21 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 8 février 2011
1 déc. 2008 à 16:51
oui absolument c'est le dérnier enregistrement que j'ai fais qui reste
0
cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
1 déc. 2008 à 17:08
Voici une autre manière de pouvoir enregistrer dans un fichier :

<hr size="2" width="100%" />
Sub ecriture()

     Dim SW As New StreamWriter("hotel.txt", True)' crée le fichier ou si existe ajoute

     For i = 0 To Li - 1

          SW.WriteLine(t(i
)
)
          ' A chaque fois que WriteLine est utilisé, le contenu de t(i) est enregistré
          sur une nouvelle ligne

          Next

         SW.Close()

End Sub

<hr size="2" width="100%" />Pour lire un fichier maintenant :
<hr size="2" width="100%" />
Function lecture() As Object()

    Dim i As Integer = 0
    ReDim t(Li)    Dim SR As New StreamReader ("hotel.txt")

    Do Until SR.Peek = -1 ' Lit le fichier du début jusqu'à la fin

         t(i) = SR.ReadLine() ' ReadLine lit une ligne à chaque fois

         i += 1

    Loop    SR.Close()

    Return (t)

End Function

<hr size="2" width="100%" />
J'espère que cela va te convenir...

<hr size="2" width="100%" />
++

Fauve
<hr size="2" width="100%" />Pensez : Réponse Acceptée 
0
code86 Messages postés 1 Date d'inscription samedi 27 décembre 2008 Statut Membre Dernière intervention 27 décembre 2008
27 déc. 2008 à 12:28
salut,


Si tu veux ajouter un enregistrement dans le cas d'un fichier séquentiel, tu doit tout simplement ouvrir le fichier en mode ajout , comme ça le nouveau enregistrement s'ajoute automatiquement dans la dernière ligne pour ne pas écraser les enregistrements déja enregistré
0
Rejoignez-nous