Ecrire et lire dans un fichier

cs_julien__ Messages postés 53 Date d'inscription vendredi 2 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008 - 5 juil. 2004 à 20:40
cs_julien__ Messages postés 53 Date d'inscription vendredi 2 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008 - 9 juil. 2004 à 11:32
Je voudrai écrire le contenu d'un tableau de variables a() dans un fichier afin de pouvoir la reprendre ultérieurement.

Sous VB5 je faisais comme ceci :

Private Sub wrt()
Open Nomfichier For Binary Access Write As #1
Put #1, , a()
Close #1
End Sub

Sous VB.Net le même code ne marche plus. Est-ce que quelqu'un peut m'aider?

:)

5 réponses

cs_RedDog Messages postés 50 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 21 août 2013
6 juil. 2004 à 00:35
Ceci est une méthode pour le faire, mais on peut aussi faire autrement:

' On crée un objet gérant les dossier (facultatif)
 Dim di As New System.IO.DirectoryInfo("F:")
        di.CreateSubdirectory("TempVB.net")
' On crée un objet gérant le fichier
        Dim fi As New System.IO.FileInfo(di.FullName & "\TempVB.net\st.dat")
' On crée un flux pour l'écriture (de texte dans mon cas) et on crée le fichier
        Dim sw As System.IO.StreamWriter = fi.CreateText()

' J'ai besoin de te donner un exemple donc je crée un tableau
        Dim tableau1() As String = {"Orange", "Tomate", "Cerise", "Mangue", "Poire"}

' Je crée une variable de référence pour l'instruction For Each
        Dim s1 As String
' A chaque boucle j'inscrit le mot suivant dans le flux et je le vide ( je le mets dans le fichier) grâce à l'instruction Flush() (Flush() >>> ça dépend de ce qu'on veut inscrire, dans ce cas je peux m'en passer vu que ce que j'ai à faire est minuscule, Close() aurait pu le faire lui même à la fin)
        For Each s1 In tableau1
            sw.Write(s1 & " ;")
            sw.Flush()
        Next

' Je vide une dernière fois le flux (si il y a quelque chose, dans ce cas non) et je le ferme.
        sw.Close()
0
cs_RedDog Messages postés 50 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 21 août 2013
6 juil. 2004 à 00:45
Mais la nouvelle syntaxe pour Open c'est FileOpen:

Public Sub FileOpen( _
   ByVal FileNumber As Integer, _
   ByVal FileName As String, _
   ByVal Mode As OpenMode, _
   Optional ByVal Access As OpenAccess = OpenAccess.Default, _
   Optional ByVal Share As OpenShare = OpenShare.Default, _
   Optional ByVal RecordLength As Integer = -1 _
)
0
cs_julien__ Messages postés 53 Date d'inscription vendredi 2 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008
7 juil. 2004 à 20:09
Ceci m'aide grandement, je te remercie d'avoir pris la peine.
Ok pour écrire dans un fichier le contenu d'un tableau de variables ça marche impécable. Et pour les lire et les remettre dans un tableau comment on fait msieur?

:)
0
cs_RedDog Messages postés 50 Date d'inscription lundi 7 avril 2003 Statut Membre Dernière intervention 21 août 2013
9 juil. 2004 à 04:46
Moi je passe par la classe System.IO.StreamReader

-si le fichier contient des informations du type:
{item1;item2;item3}

Alors je fais ceci:

Dim sr As New StreamReader(ofd1.FileName)
' ici ofd1.filename >>> mettre un nom de fichier valide
Dim str As String = sr.ReadToEnd
Dim str1() As String = str.Split("§")
' ici § >>> mettre un symbole de séparation valide d'après l'exemple {item1;item2;item3}, il faudrait mettre ';', et résulte un tableau str1().


-si le fichier contient des informations du type:
{item1
item2
item3}

Alors je fais ceci:

Dim sr As New StreamReader(fi.FullName)
' Je crée un tableau dynamique, c'est "plus simple"
Dim arl As New ArrayList()
' Dans une boucle, j'extrais ligne par ligne et je mets dans le tableau dynamique
While (sr.Peek <> -1)
    Dim str As String = sr.ReadLine
    arl.Add(str)
End While
' Puis je mets le contenu de ce tableau dynamique dans mon tableau
aryPref = arl.ToArray


Voilà, j'espère que ça t'aidera.

Ceci est l'aspect .Net, les méthodes VB6 sont conservés à quelques nuances près avec FileOpen(), mais moi je l'utilise pas, par conséquent, je ne t'expliquerai pas.

Le futur est là, vive les classes VB.Net :big) :big) :)
0

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

Posez votre question
cs_julien__ Messages postés 53 Date d'inscription vendredi 2 janvier 2004 Statut Membre Dernière intervention 1 décembre 2008
9 juil. 2004 à 11:32
Oui ça m'aidera beaucoup, je te remercie, car le passage de VB5 ou 6 à VB.Net, s'il est extremement intéressant n'est quand-même pas si facile que ça.
Ciao ciao

:)
0
Rejoignez-nous