|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Propriétés de l'objet TextStream |
|
| Propriété | Description |
AtEndOfLine |
Indique si le curseur de lecture |
AtEndOfStream |
Vaut True
si vous avez
atteint la fin du fichier en lecture. |
Column |
Indique la colonne où se trouve actuellement votre "curseur virtuel" dans le fichier. |
Line |
Idem, avec le numéro de ligne. |
Méthodes de
l'objet TextStream |
|
| Méthodes | Description |
Close |
Ferme le flux. |
Read |
Lit x caractères dans le fichier. |
ReadAll |
Lit tout le fichier et en récupère le résultat dans une chaîne de caractères. |
ReadLine |
Lit une seule ligne dans le fichier (en s'arrêtant donc automatiquement au premier retour chariot trouvé). |
Skip |
Passe un nombre x de caractères dans le fichier. |
SkipLine |
Passe une ligne dans le fichier. |
Write |
Ecrit une chaîne de
caractères dans le fichier. La séquence Write ou WriteLine suivante continuera à la suite de cette
chaîne. |
WriteBlankLines |
Ecrit x lignes vides dans le fichier. |
WriteLine |
Ecrit une chaîne de
caractères dans le fichier, et termine la séquence par un retour à la
ligne. La séquence Write ou WriteLine suivante s'inscrira sous la chaîne de
caractères. |
Ecrire dans un fichier texte via l'objet TextStreamL'exemple ci-dessous illustre les techniques d'écriture dans un fichier : ouverture du fichier et utilisation des méthodes
WriteXYZ. Vérifiez notamment les différences de fonctionnement entreWriteetWriteLine.
Une fois le fichier créé, il est ouvert dans le bloc-notes Windows via l'instructionShell.Pour lancer le programme :
- Recopiez le code ci-dessous dans un module standard Access.
- Faites apparaître la fenêtre de Visual Basic Editor (Ctrl + G).
- Tapez dans la fenêtre quelque chose comme :
puis Entrée.
FileWrite "C:\Mes documents\test.txt"' --- ' CREATION DE FICHIER ' --- ' (c) 2003, Hervé Inisan - www.self-access.com ' ' La fonction FileWrite() crée un fichier texte et y ' écrit quelques données. ' --- ' Entrée : strFile <- Chemin complet vers le fichier à créer.Function FileWrite(ByVal strFile As String)Dim fso As Scripting.FileSystemObject Dim fle As Scripting.File Dim stm As Scripting.TextStream' Créer une instance du FSOSet fso=New Scripting.FileSystemObject' Ouvrir le fichier en écritureSet stm=fso.CreateTextFile(strFile,True)' Ecrire quelques lignes dans le fichierWith stm' Ecrire quelques mots les uns sous les autres.WriteLine"lundi".WriteLine"mardi".WriteLine"mercredi"' Ecrire 2 lignes vides.WriteBlankLines2' Ecrire 2 nouvelles lignes.WriteLine"jeudi".WriteLine"vendredi"' Ecrire dans le fichier le numéro de la ligne actuelle.WriteLine"Le pointeur est en ligne : "&stm.Line' Idem avec la colonne.Write"Le pointeur est en colonne : "&stm.Column.Write" ...puis en colonne : "&stm.Column' Fermer le flux.Close End With' Libérer les objetsSet stm=Nothing Set fso=Nothing' Ouvrir le fichier dans le bloc-notes WindowsShell"notepad.exe "&Chr(34) &strFile&Chr(34),vbNormalFocus End FunctionRésultat :
Lire un fichier texte entierLa méthode
ReadAllde l'objetTextStreampermet de lire un fichier texte en une seule fois, et de stocker le contenu dans une variable String. Vala comment ça marche :
' ---
' LECTURE DE FICHIER
' ---
' (c) 2003, Hervé Inisan - www.self-access.com
'
' La fonction FileRead1() lit le contenu d'un fichier texte
' en une seule fois.
' Les résultats sont affichés dans la fenêtre Exécution (Ctrl+G).
' ---
' Entrée : strFile <- Chemin complet du fichier à lire.
' ---
Function FileRead1(ByVal strFile As String)
Dim fso As Scripting.FileSystemObject
Dim stm As Scripting.TextStream
Dim strTemp As String
' Créer une instance du FSO
Set fso=New Scripting.FileSystemObject
' Ouvrir le fichier en écriture
If Not fso.FileExists(strFile)Then
MsgBox"Le fichier ["&strFile&"] n'existe pas !",vbExclamation
Exit Function
End If
Set stm=fso.GetFile(strFile).OpenAsTextStream(ForReading)
strTemp=stm.ReadAll
Debug."CONTENU DU FICHIER:"
Debug.Print strTemp
' Libérer les objets
stm.Close
Set stm=Nothing
Set fso=Nothing
End Function
Note : le listing est volontairement détaillé. Si vous être un fainéant invétéré, vous pouvez ignorer les variables
stmetstrTempet écrire directement :
Debug.Print fso.GetFile(strFile).OpenAsTextStream(ForReading).ReadAll
Lire un fichier texte ligne par ligneVariante de l'exemple ci-dessus. Cette fois, il s'agit de parcourir le fichier ligne par ligne (on peut imaginer un traitement spécifique sur chaque ligne trouvée). La méthode
ReadLineet la propriétéAtEndOfStreamsont vos amies :o)' --- ' LECTURE DE FICHIER ' --- ' (c) 2003, Hervé Inisan - www.self-access.com ' ' La fonction FileRead2() lit le contenu d'un fichier texte ' ligne par ligne. On suppose qu'on ne connaît pas le ' nombre de lignes à l'avance. ' Les résultats sont affichés dans la fenêtre Exécution (Ctrl+G). ' --- ' Entrée : strFile <- Chemin complet vers le fichier à lire. ' ---Function FileRead2(ByVal strFile As String)Dim fso As Scripting.FileSystemObject Dim stm As Scripting.TextStream Dim strTemp As String' Créer une instance du FSOSet fso=New Scripting.FileSystemObject' Ouvrir le fichier en écritureIf Not fso.FileExists(strFile)Then MsgBox"Le fichier ["&strFile&"] n'existe pas !",vbExclamation Exit Function End If Set stm=fso.GetFile(strFile).OpenAsTextStream(ForReading)While Not stm.AtEndOfStream Debug."Ligne "&stm.Line&" => ";strTemp=stm.ReadLine Debug.Print strTemp Wend' Libérer les objetsstm.Close Set stm=Nothing Set fso=Nothing End FunctionRésultat :
Autres variantesSi vous souhaitez plus de précision dans la lecture du fichier, l'objet
TextStreamvous offre encore d'autres méthodes :Read,Skip,SkipLine. Et hop, une ch'tite démo :' --- ' LECTURE DE FICHIER ' --- ' (c) 2003, Hervé Inisan - www.self-access.com ' ' La fonction FileRead3() lit le contenu du fichier spécifique ' écrit par FileWrite(). ' Les résultats sont affichés dans la fenêtre Exécution (Ctrl+G). ' Consultez la fonction FileWrite() pour mieux comprendre la ' structure du fichier et le positionnement en lecture qui en ' découle... ' --- ' Entrée : strFile <- Chemin complet vers le fichier à créer. ' --- Function FileRead3(ByVal strFile As String) Dim fso As Scripting.FileSystemObject Dim stm As Scripting.TextStream Dim strTemp As String ' Créer une instance du FSO Set fso = New Scripting.FileSystemObject ' Ouvrir le fichier en écriture If Not fso.FileExists(strFile) Then MsgBox "Le fichier [" & strFile & "] n'existe pas !", vbExclamation Exit Function End If Set stm = fso.GetFile(strFile).OpenAsTextStream(ForReading) With stm ' Lire les 3 premières lettres du fichier strTemp = .Read(3) Debug.Print "3 PREMIERES LETTRES: ", strTemp ' A priori, on n'est pas en fin de ligne, ni ' en fin de fichier. ' On le vérifie ? Debug.Print "FIN DE LIGNE: ", .AtEndOfLine Debug.Print "FIN DE FICHIER: ", .AtEndOfStream ' Lire la fin de ligne sans la stocker .SkipLine ' Lire la ligne suivante en entier strTemp = .ReadLine Debug.Print "DEUXIEME LIGNE: ", strTemp ' Passer les 4 premiers caractères de la ligne 3 ' et lire ce qui suit sans passer par une variable .Skip 4 Debug.Print "FIN DE LA TROISIME LIGNE: ", .ReadLine ' Passer les 2 lignes vides suivantes .SkipLine .SkipLine ' Lire toute la fin du fichier Debug.Print "RESTE DU FICHIER: " Debug.Print .ReadAll ' Cette fois, on est en fin de fichier ! Debug.Print "FIN DE FICHIER: ", .AtEndOfStream ' On ferme ! .Close End With ' Libérer les objets Set stm = Nothing Set fso = Nothing End FunctionRésultat :
| << 7. Manipulation des fichiers : exemples | [ Sommaire ] | 9. Compléments sur le FileSystemObject >> |
| Cette section vous intéresse ? Abonnez-vous ! |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
Notions de base Jargon Access :o) Syntaxe SQL Programmation ASP Scripting Runtime Le Grenier [FAQ Access] Les tutoriaux Self-Access Les Assistants Access Les livres sur Access ! |
|
Forums Access Abonnement gratuit Télécharger... |
|
Le saviez-vous ? Dans Access 2000, la correction automatique de noms provoque la perte de mise en page des états. Désactivez-la dans Outils/Options... A demain pour une nouvelle astuce ! |