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 :

lecture de donnees de dimensions variables


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Par défaut lecture de donnees de dimensions variables
    Bonjour à tous,

    J'essaie de lire un fichier avec des lignes du type
    a b c d e
    a b c d e f g h
    a b c d e
    a b c d e f g h i
    ...

    sachant que:
    - j'ai le format de chacun des éléments,
    - la valeur "e" m'indique s'il y a d'autres valeurs après,
    - que le nombre de valeurs qui se trouvent après le e sont connues et stockées dans un tableau.
    En fait, il s'agirait d'arriver à déclarer dans mon format de lecture le nombre de valeurs situées après le "e" dans le cas où il y a quelque chose. Connaissant les formats, avec un advance, je peux déjà réguler la lecture jusqu'au "e" inclus, mais c'est le format variable qui me pose problème...
    Je suis preneuse de toute suggestion(s)! Merci d'avance

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Le plus simple consiste à lire chaque ligne de ton fichier comme une chaîne de caractères, puis de décortiquer celle-ci.
    Jean-Marc Blanc

  3. #3
    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
    (Complément à la réponse de Jean-Marc)

    Le format peut prévoir plus d'entrée que le nombre de variables à lire. Par exemple, l'expression suivante est tout à fait légale :

    read(VarCaractere,'(9999i2)') (Vecteur(k), k=1, 10)

    La solution simple consiste donc à :
    • Lire la ligne dans une variable caractère suffisamment longue
    • Déduire le nombre d'élément à lire par analyse du contenu de la ligne
    • Lire des éléments présents en utilisant la stratégie décrite ci-haut pour le format

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Par défaut
    Merci de vos réponses. J'avais résolu le problème de facon plus triviale en décomposant mon fichier dans un éditeur de texte. Mais je retiens vos solutions pour la prochaine fois!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture des paramètres d'une variable XML
    Par alband85 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/07/2007, 09h16
  2. [débutant] un tableau de dimension variable selon l'objet qui le contient
    Par Epistocles dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/01/2007, 18h07
  3. tableau à dimension variable
    Par Phoenix_Blue dans le forum C++
    Réponses: 17
    Dernier message: 18/11/2006, 14h17
  4. [SQLLite] Lecture des données dans un fichier .db
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 31
    Dernier message: 13/11/2006, 17h12
  5. contraint CHECK avec lecture de données sur une autre table ?
    Par mamiberkof dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/05/2006, 09h14

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