Lecture, écriture dans un fichier text

0/5 (21 avis)

Snippet vu 28 972 fois - Téléchargée 45 fois

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

Ajouter un commentaire Commentaires
myxtek Messages postés 1 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 1 mars 2007
1 mars 2007 à 17:12
Par contre cette méthode est plus lente que l'accès en écriture "OPEN "nomdufichier" for ******* as #1"
cs_Tene Messages postés 28 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 2 décembre 2005
20 sept. 2006 à 14:22
Excellent ce code !!

Bien meilleur que le laisse supposé le newbie 'acidtoxik'.
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
30 juin 2006 à 16:20
Remplace App.Path par "C:"
doudouet Messages postés 8 Date d'inscription mercredi 31 mai 2006 Statut Membre Dernière intervention 22 juin 2006
30 juin 2006 à 13:44
excuser moi comment je peut ouvrir a l'interieur du programme un fichier qui est dans le repertoire c:\ programation
cs_LeGrosWinnie Messages postés 47 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 18 mai 2007
25 avril 2006 à 15:33
Euh...la même chose pour VB.NET, quelqu'un a ?????

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.