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 :

Fonction Read avec un nombre de variables variables


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut Fonction Read avec un nombre de variables variables
    Bonjour a tous!
    Je suis actuellement sur un projet en Fortran et je rencontre un petit soucis dans mon code.

    J'essaie de lire un fichier de la forme:

    VANNE 8.3
    RIEN
    2
    3

    Donc j'utilise
    Read(11,*) poubelle, sing
    11 étant mon fichier

    Pour la 1eère ligne, tout va bien, mais quand j'attaque le
    RIEN
    Il ne voit que le rien, mais je lui demande deux variables dans le read. Donc il saute a la ligne d'en dessous, lire le deux. Pour être clair, j'ai ça:

    VANNE 8.3
    -> poubelle="VANNE" sing=8.3
    RIEN
    ->poubelle="RIEN" sing =2

    Ça me pose un gros soucis, puisque lorsque je veux lire ce qui est censé être un 2, j'ai un 3. Et tous mes READ sont ensuite décalés...

    Existe-t-il une option du Read qui le force a rester sur la ligne, ou bien suis-je obligé de faire quelquechose de plus lourd?

    Merci d'avance pour votre temps!

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    Tu es obligé de faire quelque chose de plus lourd.

    Le comportement de ton programme correspond à la fonctionnalité de la lecture libre, et il n'y a pas d'option.

    La stratégie de base assez simple consiste à lire la ligne dans une variable caractère en utilisant le format (a) pour éviter les sauts de ligne imprévu que tu décris. Ensuite, il y a plusieurs solutions et elles dépendent du besoin. Elle vont du très simple « je fourni des données bidons pour satisfaire une lecture libre en raboutant " 0 0 0 0" au contenu de la ligne » au très compliqué « je programme un décodeur syntaxique ». Pour le premier cas, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    character (100) Ligne
    ...
    read(11,'(a)') Ligne
    Ligne = trim(Ligne) // " 0 0 0 0 0"
    read(Ligne,*) Poubelle, Sing
    ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut
    Et bien il ne me reste plus qu'a vous remercier, ça marche parfaitement!

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Août 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 57
    Par défaut
    On peut aussi jouer avec le ADVANCE='no' comme clause complémentaire du READ; il suffit de relire la ligne avec les 2 arguments uniquement dans le cas où elle ne contient pas "RIEN".

    Etant l'enseignant qui a filé le projet en question, j'insiste pour que l'aide obtenue ici soit mentionnée dans le rapport final (notons que je n'ai rien contre l'usage du forum, quand la question est bien argumentée comme dans ce cas )

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/12/2007, 16h17
  2. Affichage avec un nombre de colonnes variable
    Par sebaaas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/10/2007, 19h53
  3. SELECT avec un nombre de colonnes variable
    Par sorcer1 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 24/09/2007, 21h58
  4. Réponses: 3
    Dernier message: 23/08/2007, 00h39
  5. Interface avec un nombre de champs variable
    Par vladvad dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/06/2007, 11h19

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