discase
discase@mail.dotcom.fr http://www.citeweb.net/discase |
>Mode de fonctionnement d'un gestionnaire de fichiers |
l | Un fichier doit OBLIGATOIREMENT être ouvert pour que le programme puisse y accéder. Ceci est valable pour tous les langages. De même, vous ne devez surtout pas oublier de fermer les fichiers après utilisation. Sinon, les fichiers ne seront plus du tout accessibles après. |
l | En fait, les versions "récentes" de MS-DOS s'arrangent pour avoir quand même accès aux fichiers, mais c'est une habitude à prendre. |
>Ouverture de fichiers |
- nom_fichier est le nomdu fichier avec ou non son chemin, exemple: C:\PRZINE\ARTICLE.TXT - mode_accès représente le mode d'accès au fichier: INPUT: lecture de fichiers texte (le fichier doit exister) OUTPUT: écriture de fichiers texte (le fichier est créé s'il n'existe pas) APPEND: ajout de lignes (texte) BINARY: lecture/écriture (binaire) RANDOM: lecture/écriture (aléatoire) - numéro représente le numéro donné au fichier. Ce numéro resservira lors de la lecture ou de l'écriture du fichier. | l |
>Les fichiers textes |
>lire un fichier texte |
OPEN 'C:\AUTOEXEC.BAT' FOR INPUT AS #1 DO WHILE NOT EOF(1) 'tant que la fin du fichier n'est pas atteinte LINE INPUT #1, Ligne$ 'On lit une ligne PRINT Ligne$ ' et on l'affiche ... LOOP CLOSE #1 'On oublie surtout pas de fermer le fichier. | l |
OPEN 'C:\AUTOEXEC.BAT' FOR INPUT AS #1 DO LINE INPUT #1,Ligne$ PRINT Ligne$ LOOP UNTIL EOF(1) CLOSE #1 | l |
>écriture dans un fichier texte |
>mise à jour d'un fichier texte |
>Les fichiers binaires |
OPEN 'C:\ESSAI.TXT' FOR BINARY AS #1 A$ = " " 'la chaîne est un espace, elle aurait pu ' être n'importe quel caractère ' seule la longeur de cette chaîne compte ' dans le cas de la lecture GET #1, 3, A$ ' A$ va recevoir le 3ème OCTET B$ = CHR$(ASC(A$) + 2) ' On prend le caractère (CHR$) ' dont le code ASCII est ègale à ' celui de A$ (ASC) ' auquel on ajoute deux. PUT #1, 3, B$ ' On écrit le résultat CLOSE #1 | l |
l | dans l'instruction 'PUT #1, 3, B$', on aurait pas pu remplacé B$ par CHR£(ASC(A$) + 2) su fait de l'utilisation de la variable tampon qui doit exister en mémoire au lieu d'être calculée à l'éxecution. |
>Cas du débordement de fichier |
l | Ne pas utiliser la fonction EOF comme dans le cas d'un fichier texte, voir explications plus loin. |
OPEN "C:\AUTOEXEC.BAT" FOR BINARY AS #1 OPEN "C:\AUTOEXEC.ESS" FOR BINARY AS #2 A$ = " " FOR I = 1 TO LOF(1) GET #1,, A$ PUT #2,, A$ NEXT I CLOSE #2 CLOSE #1 | l |
>Pourquoi ne pas utiliser EOF ? |