begin process at 2008 07 06 18:25:24
1 205 686 membres
251 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LECTURE, ÉCRITURE DANS UN FICHIER TEXT


Information sur la source

Catégorie :Fichier / Disque Niveau : Initié Date de création : 12/05/2002 Date de mise à jour : 12/05/2002 01:49:12 Vu : 20 749

Note :
7,67 / 10 - par 6 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note


Description

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

Source

  • '**************************************************************
  • '************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
  • '************************************************************
  • '************************************************************
'**************************************************************
'************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          
  • signaler à un administrateur
    Commentaire de yoman64 le 12/05/2002 03:26:47

    je crois bien que cette source serais plus apprecier sur www.aspfr.com

  • signaler à un administrateur
    Commentaire de acidtoxik le 12/05/2002 12:51:19

    c vraiment un code de newbie !!! pour le faire plus facilement prend ce code :
    OPEN "nomdufichier" for ******* as #1
    Print #1, "ce que t veux ecrire"
    close #1

    ****** ici tu met OUTPUT pour ecrire qu1 seule fois dans un fichier
                              INPUT    pour lire le fichier ( dans ce cas la tu enleve 'print #1' )
                              APPEND pour pouvoir rajouter une ligne à chaque fois sans effacer ce que contené le fichier

  • signaler à un administrateur
    Commentaire de Nocturne le 12/05/2002 14:51:25

    Biensur acidtoxik, je suis d accord avec tes observations concernant input, output, append, simplement j ai mis cette source pour apporter une autre facon d'écrire ou de lire un fichier avec Scripting.FileSystemObject etc...
    En plus il y a déjà des codes sources sur input, output, append alors ca sert a rien de repeter des choses déjà existante, c'est pour cette raison que j'ai mis cette source pour apporter quelque chose de different.
    Voila, je te remerci de ton commentaire.
    A+

  • signaler à un administrateur
    Commentaire de pheno le 17/05/2002 16:38:56

    le scripting.filesystemobject c'est la nouvelle methode pour lire et ecrire des fichiers, les annees passent et les methodes de programmation evolue, je pense que nocture a bien fait de mettre cette source

  • signaler à un administrateur
    Commentaire de mikaeloff le 09/11/2003 00:53:50

    en out cas merci pour la source et les commentaires
    ça va bien m'aider.

  • signaler à un administrateur
    Commentaire de Nocturne le 09/11/2003 02:20:24

    C'est fait pour ca.
    Bonne continuation, mikaeloff.
    Nocturne

  • signaler à un administrateur
    Commentaire de mikaeloff le 10/11/2003 12:05:20

    voila j'ai un petit probleme:
    je voudrais récupere ce que contient un ligne du fichier text
    pour le placer dans une variable

    a+

  • signaler à un administrateur
    Commentaire de Nocturne le 10/11/2003 17:52:46

    Salut mikaeloff,
    Ta question n'est pas très claire.
    Il faut mettre une condition pour recupere la bonne ligne mais cela veux dire que tu connais déjà la ligne que tu veux recuperer alors cela n'a pas d'interet et je pense que ce n'est pas cela que tu veux faire.

    Donc je pense que tu ne connais pas ta ligne mais tu connais peut etre sa position dans ton fichier text alors le mieux c est de  un compteur de lignes et a ce moment la tu testes le numero du compteur avec une condition, une fois dessus et bien tu recuperes ta ligne que tu mets dans une variable.
    Je peux pas faire mieux vu ta question.
    Bonne prog, a+
    Nocturne

  • signaler à un administrateur
    Commentaire de mikaeloff le 10/11/2003 19:04:14

    Salut nocturne,
    je suis en train de créer mon premier jeu et pour cela il me falait un moyen de comparer le score avec le dernier score enregistré dans un fichier .txt.

    en fait je m'en suit sorti en faisant:

    Private Sub lirepointslog()
    Path = CurDir & "pointslog.txt"
    Open Path For Input As #1
    Do While Not EOF(1) = True
    Line Input #1, ligne_lue
    Text1.Text = ligne_lue
    Loop
    Close #1
    If Text1.Text &lt; points Then
    pointsdstxt                   'ecrit le score dans pointslog.txt
    Label4.Visible = True
    End Sub

  • signaler à un administrateur
    Commentaire de Nocturne le 10/11/2003 20:21:27

    Une petite remarque, utilise une variable a la place de ton text1.text et fait gaffe dans ta condition if Text1.Text &lt; points car il peut se produire une incompatibilité de type.
    Faire une comparaison entre un text1.text en string avec une variable que je suppose integer ou en long, il faut d'abord la convertir suivant sa longueur, CInt(text1.text) ou CLng(text1.text).
    Soit :
    mavariable = ligne_lue
    et après if CLng(mavariable) &lt; points then ......
    Oublie pas de fermer ta condition avec End If
    Bonne continuation.

  • signaler à un administrateur
    Commentaire de mikaeloff le 11/11/2003 12:22:29

    ok merci beaucoup de ta reponse

  • signaler à un administrateur
    Commentaire de xlt le 30/12/2003 11:01:55

    Il me semble que la lecture d'un fichier en entier avec le méthode scripting est bien plus rapide que ligne par ligne.
    (il faut verifier mes dire bien sûr).
    En plus la méthode ligne par ligne ne permet pas de lire de gros fichier.

    PS: j'ai même pas compris la remarque bidon de yoman64, c'est peut être utilisable en asp (vbscript) mais c'est avant tout du VB (sauf que le type de variable est pas défini, dommage)

    En tout cas Bravo pour les commentaires

  • signaler à un administrateur
    Commentaire de TVN le 26/03/2004 09:21:19

    Je connaissais la méthode Input, Output et Append mais pas celle la.
    Je ne l'ai pas encore testée mais je vais m'y mettre rapidement car j'ai une échéance concernant la lecture de fichiers voir de liste de fichiers sur un explorateur pour l'écrire dans un fichier texte.
    Merci et bonne prog.
    @+
    TVN

  • signaler à un administrateur
    Commentaire de zinzan1 le 24/06/2004 11:15:02

    Merci pour la source !!!!
    Juste un petit truc en passant pour ceux qui voudrait se servir de cette source telle qu'elle se présente aujourd'hui (ce que j'ai tenté de faire) ..eh bien ça ne marche pas .. vous n'écrirez rien dans votre fichier.
    Je crois que pour écrire quelquechose il faut faire :
    FicLog.WriteLine ("texte")
    et FicLogBis.WriteLine("texte") ou alors j'ai manqué quelquechose en tous cas avec FicLog ça écrit parfaitement !!!!
    Bonne Prog !! Ciao

  • signaler à un administrateur
    Commentaire de FFkiller le 01/07/2004 13:40:49

    Petite question :

    Mon fichier s'incrémente, est lu mais n'est pas sauvegardé or j'aimerais qu'il le soit...

    Quel est le code ??

    Merci d'avance

  • signaler à un administrateur
    Commentaire de rabza12 le 27/04/2005 19:35:59

    ce code est presque parfait je vais te dire pkoi presque!

    parce que si tu limites le numéro d'identification du fichier à 1 ton accès peut etre refusé donc bug du programme...

    mon conseil:    une variable : NumFich

    NumFich = Freefile

    avec l'instruction open c'est préférable... a+

  • signaler à un administrateur
    Commentaire de LeGrosWinnie le 25/04/2006 15:33:31

    Euh...la même chose pour VB.NET, quelqu'un a ?????

  • signaler à un administrateur
    Commentaire de doudouet le 30/06/2006 13:44:12

    excuser moi comment je peut ouvrir a l'interieur du programme un fichier qui est dans le repertoire c:\ programation

  • signaler à un administrateur
    Commentaire de Nocturne le 30/06/2006 16:20:18

    Remplace App.Path par "C:\"

  • signaler à un administrateur
    Commentaire de Tene le 20/09/2006 14:22:21

    Excellent ce code !!

    Bien meilleur que le laisse supposé le newbie 'acidtoxik'.

  • signaler à un administrateur
    Commentaire de myxtek le 01/03/2007 17:12:50

    Par contre cette méthode est plus lente que l'accès en écriture "OPEN "nomdufichier" for ******* as #1"

Ajouter un commentaire

Pub



Appels d'offres

WEB DESIGN
Budget : 1 000€
Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS