Lecture, écriture dans un fichier text

Soyez le premier à donner votre avis sur cette source.

Snippet vu 28 159 fois - Téléchargée 42 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
-
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
-
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
-
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
-
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
-
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.