IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

[Fortran] Lecture de la fin d'un fichier


Sujet :

Fortran

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 55
    Points : 43
    Points
    43
    Par défaut [Fortran] Lecture de la fin d'un fichier
    J'ai un fichier contenant des lignes de texte.
    Je ne sais pas à l'avance combien de lignes ce fichier contient.

    Je voudrais lire chaque ligne et m'arrêter à la fin sans que ça plante ( ), genre trouver l'équivalent du eof en C, ou qqch comme ça.

    J'ai essayé de mettre une étiquette d'erreur mais ça ne marche pas, il plante quand meme à la fin du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          read(10,*,err=200) Gx,Gy,Gz
    Merci!

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    La fin de fichier est detectee automatiquement par READ. Tu peux detecter que READ a rencontre EOF en utilisant le mot-cle IOSTAT=int_var. Lorsque EOF arrive, int_var contient une valeur negative. Alternativement, tu peux utiliser le mot cle END=label pour remplacer ERR=label, puisqu'atteindre la fin d'un fichier n'est pas vraiment une erreur (note que tu peux utiliser IOSTAT, ERR et END ensemble).

    Deux remarques:
    - lorsque tu lis ton fichier texte, comme tu attends trois valeurs (Gx, Gy, Gz), il faut que la derniere ligne comprenne les trois valeurs. Si EOF arrive apres une seule valeur, par exemple, Gy et Gz garderont les valeurs de la ligne precedente. Ce n'est pas un probleme si ton fichier d'entree est bien construit.

    - END ne fonctionne pas sur les fichiers en mode lecture binaire (direct access). C'est evident, puisque c'est une erreur de lire un record qui n'existe pas (comme en C).

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2013, 14h34
  2. [Fortran 90] Détection de fin de fichier
    Par Invité dans le forum Fortran
    Réponses: 3
    Dernier message: 17/04/2008, 11h43
  3. Réponses: 5
    Dernier message: 05/04/2008, 12h49
  4. Réponses: 22
    Dernier message: 26/09/2006, 01h36
  5. Lecture de la fin d'un fichier
    Par choubiroute dans le forum Langage
    Réponses: 11
    Dernier message: 21/06/2006, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo