Lecture fichier texte avec objet fso (file system object)

Contenu du snippet

Il y a une méthode simple pour ouvrir des fichiers textes, faire une boucle de lecture ligne par ligne pour mettre la totalité du fichier dans un STRING. L'inconvénient c'est la lecture de fichier très long, + de 100Ko, la routine occupe le système tant que la boucle n'est pas terminée.
Le code suivant utilise le File System Object, facilitant l'accès au système de fichier (Disque, répertoire, fichier...) accessible avec la référence Microsoft Scripting Runtime (SCRRUN.DLL).

Source / Exemple :


Dim FileBuffer1 As String

Function ReadTxT(Chemin As String, Fichier As String)
    Dim VarBuffer As String
'   Création de l'objet FSO
    Dim ObjetText As New FileSystemObject
'   Variable type fichier
    Dim Fil As File
'   Variable TextStream du FSO
    Dim TStreamText As TextStream
    Set ObjetText = CreateObject("Scripting.FileSystemObject")
    ObjetText.OpenTextFile (Chemin + Fichier)
    Set Fil = ObjetText.GetFile(Chemin + Fichier)
    Set TStreamText = Fil.OpenAsTextStream(ForReading)
'   Copie la totalité du fichier dans un string (retour chariot et saut de ligne compris)
    VarBuffer = TStreamText.ReadAll
'   Ferme le fichier
    TStreamText.Close
'   Efface la valeur précédente de la fonction ReadTxT
    ReadTxT = vbNullString
'   Renvoie le texte complet du fichier
    ReadTxT = VarBuffer
End Function

Private Sub Lecture
'   Utilisation de la fonction lecture
    FileBuffer1 = ReadTxT("C:\", "BootLog.txt")
End Sub

Conclusion :


Ce code est tiré d'un petit programme permettant la suppression d'une partie de fichier DXF.
Si la méthode de suppression vous intéresse, demandé le moi!

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.