Lorsqu'on ouvre un fichier en Output :
Fonction |
Explication |
Exemples |
|
CurDir[$] | Permet de récupérer le répertoire courant avec le chemin complet | x = CurDir x = CurDir ("D") |
|
Dir[$] | Permet de lister les fichiers d'un répertoire 1 par 1. Voir l'exemple plus bas. | ||
EOF , BOF | End Of File , Begin Of File. Complexes, s'occupent de databases et RecordSet | ||
FileAttr | Code de gestion et mode d'un fichier ouvert. | ||
FreeFile | Détermine un numéro de fichier libre lors de l'ouverture | NumFichier = FreeFile Open "FICHTEST" For Output As NumFichier Close NumFichier |
|
Input | Ouvre un fichier en lecture. Voir
l'exemple plus bas. Il existe également l'instruction Input, qui petmet de stocker souplement les données d'un fichier dans une variable. Voir également l'exemple plus bas et les détails dans l'aide |
||
Loc | Est sensé retourner la position actuelle du pointeur dans un fichier. Ca ne marche pas comme je veux. | ||
LOF | Retourne la longueur en octets d'un fichier spécifié | x = LOF(NuméroFichier) | |
Seek | Permet de connaître ou de déterminer l'emplacement de la prochaine lecture ou écriture dans un fichier. L'exemple de l'aide est complexe mais contient beaucoup d'informations intéressantes. | ||
Line Input | Permet de lire une ligne complète
dans un fichier texte. Dans cet exemple, si le pointeur de fichier était par exemple au
début de la 5ème ligne du fichier, cette ligne complète sera transférée dans la
variable String TextLine. Si on fait répète cette simple ligne, c'est chaque fois la ligne suivante qui est lue. |
Line Input #1, TextLine | |
Tab | Permet d'écrire dans un fichier (ou à l'écran) des tabulations) |
CHDIR "C:/REPERTOIRE"
Lorsqu'on désire faire référence à d'autres fichiers qui se trouvent dans le même dossier que la base de données, par exemple, une liaison automatique d'objet dans un champ, il est nécessaire de déterminer le dossier dans lequel est installé la base de données avec cette instruction, sinon, la référence au seul nom de fichier ne sera pas suffisante, car il n'est peut être pas placé dans le dossier de démarrage par défaut d'Access.
Sub Directory_Click ()
UnFichier = Dir("C:\*.*") ' Envoi du premier
fichier existant
While Len(UnFichier) > 0
MsgBox UnFichier ' Tant que la longueur du fichier
suivant est > 0
UnFichier = Dir 'C'est qu'il y en a d'autres, et donc on continue
Wend
MsgBox "Fin des fichiers spécifiés"
End Sub
Me![LISListe].RowSource = ""
Fichier = Dir("c:\*.*") ' Trouve le premier
fichier correspondant.dans c:\
If Len(Fichier) > 0 Then ' S'il existe au moins un fichier
Do
Me![LISListe].RowSource = Me![LISImport].RowSource & Fichier & ";"
Fichier = Dir ' Stocke le fichier suivant dans Fichier
Loop Until Len(Fichier) = 0 ' Continue.jusqu'a la fin des fichiers
End If
Exemple :
Kill "c:\atelier\sys2.mdb"
Ensuite, pour attraper un fichier, il suffit, sur l'événement Click de la liste LISListe de faire par exemple
Variable = LISListe
Name "C:\atelier\text.txt" As "C:\atelier\truc.bak"
Sub LectureFichier_Click ()
NumFichier = FreeFile
Open "c:\atelier\FTEST.TXT" For Input As #NumFichier
Do While Not EOF(NumFichier)
Carac = Input(1, NumFichier)
If Carac <> Chr(10) Then
DonnéesTexte = DonnéesTexte & Carac
Else
MsgBox DonnéesTexte
DonnéesTexte = ""
Carac = Input(1, NumFichier)' Une lecture bidon à cause des 2 caractères de fin de ligne
End If
Loop
Close NumFichier
End Sub
Sub Bouton0_Click ()
Dim Données As Variant
Open "c:\atelier\ftest.txt" For Input As #1 ' On aurait pu utiliser FreeFile
Do While Not EOF(1)
Input #1, Données
MsgBox Données
Loop
Close #1
End Sub
La principale différence entre Wite et Print, c'est que Write ajoute des guillemets autour de ce qu'il écrit dans le fichier. Print n'ajoute rien du tout.
Sub EssaiWrite ()
Open "c:\atelier\FTEST2.txt" For Output As 1
UNom = InputBox("Entrez votre nom.")
UAge = InputBox("Entrez votre âge.")
Write #1, UNom, UAge ' Va écrire "Defawes","30"
Close #1
End Sub
Sub EssaiPrint ()
Open "c:\atelier\FTest2.txt" For Output As #1
Print #1, "Texte"
Print #1, ' Insère une ligne vide
Print #1, "Texte 1", "Texte 2 un peu plus loin grâce à la virgule"
Print #1, "Texte 3 collé à"; "Texte 4 à cause du point-virgule"
Close #1
End Sub