Manipulations de fichiers avec le FileSystemObject
Bonjour à tous,
Je vais expliquer ici comment manipuler des fichiers avec FSO.
Vous verrez, c'est très simple.
Amusez-vous bien, chers programmeurs...
' Tutorial FSO
'Écrit par Thunder
'Insérer ceci où vous le désirez :)
'On déclare FSO, et on l'assigne à un objet
Public FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Sub Form1_Load()
'On déclare l'objet qui nous sert à écrire ou lire un fichier
'À noter : Obj.OpenTextFile(Chemin, Numéro, Booléen)
'Chemin, c'est le chemin du fichier (chemin complet)
'Numéro, c'est soit 1, 2 ou 8
'1 : Lire le fichier
'2 : Écrasez et écrire dans le fichier
'8 : Écrire dans le fichier
'Booléen :
'True : Crée le fichier s'il n'existe pas
'False : Ne crée pas le fichier s'il n'existe pas (et on obtient une erreur)
Dim File As Object
Set File = FSO.OpenTextFile("C:\chemin.txt", 1, True)
'On déclare la variable qui va contenir la ligne lue
Dim TEMP_Line As String
'On lit le fichier tant et aussi longtemps que nous ne sommes rendus en bas
Do While Not File.AtEndOfStream
'TEMP_Line contiendra la ligne. Nous pouvons faire toutes sortes de manipulations
'avec cette variable. À noter qu'on ne peut utiliser plus d'une fois .ReadLine par fichier
'ouvert. C'est pourquoi il faut l'assigner à une variable
TEMP_Line = File.ReadLine
MsgBox("Ligne lue: " & TEMP_Line)
Loop
'Il ne faut absolument pas oublier de fermer le fichier
File.Close
Set File = FSO.OpenTextFile("C:\chemin.txt", 2, True)
'On écrase tout le texte qui était déjà dans le fichier pour en écrire d'autre
File.Write "Nous avons effacé tout le texte contenu dans ce fichier !"
File.WriteLine "Write écrit un bloc de texte, tandis que WriteLine écrit seulement une ligne."
'Une fois encore, on n'oublie pas de fermer le fichier
File.Close
Set File = FSO.OpenTextFile("C:\chemin.txt", 8, True)
'Cette fois-ci, on va écrire dans le fichier sans pour autant écraser le texte que nous avons
'précédemment mis.
File.WriteLine "Ce texte suit la ligne « Write écrit un bloc de texte, tandis que WriteLine écrit seulement une ligne. »"
File.Close
End Sub