Lecture, écriture dans un fichier text

Contenu du snippet

Une petite source sans prétention, suite à une demande dans le forum
Exemple de code source

Source / Exemple :


'**************************************************************
'************Ecriture et Lecture dans un fichier Text******************
'******************Par Nocturne 2002*****************************
'**************************************************************

'**************************************************************
'Procedure de création et d'écriture dans un fichier********************* 
'**************************************************************

Private EnrFich, FicLog, FicLogBis

Set EnrFich = CreateObject("Scripting.FileSystemObject") 'Création objet**
On Error Resume Next
Set FicLog = EnrFich.CreateTextFile(App.Path & "\MonFichier.txt", False)
If Err.Number = 0 Then 'Si aucune erreur, le fichier vient d'être créé*****
  Set FicLog = EnrFich.GetFile(App.Path & "\MonFichier.txt") 'Chargement du fichier
  Set FicLogBis = FicLog.OpenAsTextStream(8, -2) 'Ouverture du fichier
  FicLogBis.WriteLine (RichTextBox1.Text) 'Ecriture dans le fichier
  FicLogBis.Close 'Fermeture
  Set FicLogBis = Nothing
  FicLog.Close 'Fermeture du fichier
  Set FicLog = Nothing
Else 'Si existance d'erreurs, alors le fichier existe déjà*****
  Set FicLog = EnrFich.DeleteFile(App.Path & "\MonFichier.txt") 'Effacement du fichier existant, noter que si vous n'effacez pas le fichier, les informations seront mise à la suite des infos contenu dans le fichier (en option)
  Set FicLog = EnrFich.CreateTextFile(App.Path & "\MonFichier.txt", False) 'Création du fichier, si vous l'avez effacé (en option)
  Set FicLog = EnrFich.GetFile(App.Path & "\MonFichier.txt") 'Chargement du fichier
  Set FicLogBis = FicLog.OpenAsTextStream(8, -2) 'Ouverture du fichier
  FicLogBis.WriteLine (RichTextBox1.Text) 'Ecriture dans le fichier
  FicLogBis.Close 'Fermeture
  Set FicLogBis = Nothing
  FicLog.Close 'Fermeture du fichier
  Set FicLog = Nothing
End If

EnrFich.Close 'Fermeture de l objet
Set EnrFich = Nothing

'**********************************************************
'Procédure de lecture complet dans un fichier*******************
'**********************************************************

Set EnrFich = CreateObject("Scripting.FileSystemObject") 'Création objet**
On Error Resume Next
Set FicLog = EnrFich.CreateTextFile(App.Path & "\MonFichier.txt", False) 'Création du fichier, si il y a une erreur, le fichier existe

If Err.number = 0 Then 'Si aucune erreur, le fichier vient d'être créé*****
  FicLog.Close 'Fermeture du fichier vide
  Set FicLog = Nothing
  Set FicLog = EnrFich.DeleteFile(App.Path & "\MonFichier.txt") 'Effacement du fichier vide existant (en option)
Else 'Si existance d'erreur, le fichier existe, lecture du fichier pour la récupération des informations
  Set FicLog = EnrFich.GetFile(App.Path & "\MonFichier.txt") 'Chemin du fichier
  Set FicLogBis = FicLog.OpenAsTextStream(1, -2) 'Ouverture du fichier
  RichTextBox1.Text = FicLogBis.ReadAll 'Récupération de toutes les lignes du fichier
  FicLogBis.Close 'Vide le tampon
  Set FicLogBis = Nothing
End If

FicLog.Close 'Fermeture du fichier
Set FicLog = Nothing
EnrFich.Close 'Fermeture de l objet
Set EnrFich = Nothing

'************************************************************
'Pour info, vous pouvez lire le fichier ligne par ligne en utilisant ReadLine au lieu de ReadAll, mais ceci dans une boucle avec des numéros de lignes, il faut alors le prévoire lors de l'écriture du fichier.
'Moi, je préfere utiliser une autre procédure de lecture ligne par ligne qui est la suivante
'************************************************************

'************************************************************
'Procédure de lecture ligne par ligne d'un fichier text******
'************************************************************

Dim Contenu As String
Dim ContenuFichier
Open App.Path & "\MonFichier.txt" For Input As #1 'Ouverture du fichier, attention il doit exister car autrement il y a une erreur qui se produit
Do While Not EOF(1) 'Boucle
  Line Input #1, ContenuFichier 'Lecture de la ligne
  If Trim(ContenuFichier) <> "" Then
    If Trim(Contenu) <> "" Then
      Contenu = Contenu & Chr(13) & ContenuFichier
    Else
      Contenu = ContenuFichier
    End If
  End If
Loop
Close #1

RichTextBox1.Text = Contenu

'************************************************************
'************************************************************

Conclusion :


L'intérêt de cette source est l'utilisation de :
Scripting.FileSystemObject, CreateTextFile, OpenAsTextStream, GetFile, DeleteFile, WriteLine, ReadAll, ReadLine
et de :
Open .../... For Input As #1, Line Input #1

A voir également

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.