next up previous contents
Next: Les sous-programmes et les Up: Les fichiers Previous: Les fichiers   Contents

les entrées-sorties séquentielles formatées

La création d'un fichier est fournie par l'instruction :

       OPEN(UNIT= numfich, FILE=nomfich, STATUS='NEW')

numfich : est un entier indiquant le numéro du fichier (1 $ \leq$ numfich $ \leq$ 99)

nomfich : est une chaîne de caractère indiquant le nom du fichier à créer

STATUS = 'NEW': indique que c'est un fichier à créer.

STATUS = 'OLD': indique que c'est un fichier existant.

STATUS = 'UNKNOWN' : indique que c'est un fichier existant ou à créer.

Le fichier ainsi créé est un fichier séquentiel formaté i.e l'écriture dans ce fichier s'effectue via un format.

Le fichier se manipule, non pas directement par son nom tel qu'il est connu du système, mais par son numéro d'unité logique (ici numfich).


Pour écrire (ou lire) dans un fichier il suffit alors de préciser le numéro d'unité logique ainsi :

WRITE(numfich, ....) écrit dans le fichier créé

ou lieu de

WRITE(*,...) qui écrit sur l'unité standrd l'écran.


Exemple. Création d'un fichier séquentiel formaté

       PROGRAM creation_fichier   
          IMPLICIT NONE
          CHARACTER(LEN=20) :: nom
          INTEGER           :: age
          REAL              :: taille
  
          OPEN(UNIT=13, FILE='entree.in', STATUS='NEW')
          PRINT*,'nom  age taille ( nom ='  '  pour sortir)'
          DO 
            READ*,nom, age, taille
            IF( nom =='fin') EXIT
            WRITE(13,200) nom, age, taille
         ENDDO
         PRINT*,'----fin creation fichier formatee-------'
         CLOSE (13)
       200 format (A20,1X,I4,E12.4)
       END PROGRAM creation_fichier

Le fichier ainsi créé entree.in peut être consulté à l'aide des éditeurs de texte.


Exemple. Lecture d'un fichier séquentiel formaté et gestion des erreurs

       PROGRAM lecture_fichier
          IMPLICIT NONE
          CHARACTER(LEN=20) :: nom
          INTEGER           :: age
          REAL              :: taille

          OPEN(UNIT=44, FILE='entree.in', STATUS='OLD')
          DO 
            READ(44,*,ERR=88,END=99) nom,age, taille
            WRITE(*,200) nom, age, taille
          ENDDO
       88 print*,'Erreur dans la lecture du fichier'
           STOP
       99 print*' Fin du fichier - tout est ok'
          CLOSE (44)
          ! suite de l'histoire si il y a une suite
       200 format (A20,1X,I4,E12.4)
       END PROGRAM creation_fichier
La lecture du fichier 'entree.in' s'effectue suivant un format libre. L'attribut ERR = 88 permet la gestion des erreurs, si une erreur s'est glissée dans le fichier alors le compilateur renvoit à l'étiquette 88 et par contre si tout s'est bien passé alors il renvoit à l'étiquette 99.

  


next up previous contents
Next: Les sous-programmes et les Up: Les fichiers Previous: Les fichiers   Contents
Mazen Saad 2002-12-12