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 :

Question concernant read


Sujet :

Fortran

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Question concernant read
    Bonjour,

    je suis nouveau ici et ai besoin d'aide pou lire des fichiers avec Fortran 90.

    J'ai des Fichier .txt, qui peuvent avoir plusieurs formes, par example

    test1 : 5000
    test2 : 900
    test3 : 40

    ou dans un autre ordre

    test2 : 7654
    test3 : 30
    test4 : 543
    test1 : 54

    donc: l'ordre des lignes et le nombre de ligne n'ai pas connu!

    J'aimerai maintenant lire avec Fortran 90 la valeur de test3 par example. Est-il possible de lire une valeur après un mots clef? Si oui, quelqu'un pourrai me donner un petit example? Merci!

  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 : 83
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Est-ce que ça va seulement de test1 à test9 ou ça va plus loin?
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut Jean-Marc,

    d'abord merci de vouloir m'aider! Je pense que jusqu'à test9 ça suffit pour l'instant. Merci,

    Max

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 31
    Points : 26
    Points
    26
    Par défaut problème similaire : READ x : x doit dejà etre typé
    Bonjour,

    j'aurai bien répondu à ta question si je savais comment distinguer un type lors de l'appel de READ :
    en effet, en y réfléchissant bien, quand tu fais READ x,
    x doit déjà avoir un type déclaré et la valeur lue dans la ligne du fichier sera affectée du type donné.

    Si ensuite tu fais PRINT x sur l'écran, tu verras que ça affiche n'importe quoi si x est autres chose
    qu'un entier et qu'on l'avait défini de type entier dans les déclarations par exemple.

    Et c'est là tout le point faible de fortran : j'ai posté un message similaire dans
    le forum, mais toujours pas de réponse (pour récupérer que les réels
    présents dans un fichiers texte) je pense que soit c'est impossible (ce serait
    une lacune de fortran) soit il me manque un ingrédient (une fonction du genre "typeof(x)"
    donnant le type de x pour distinguer les types dans un fichier texte.

    Si cette fonction existait tu pourrais facilement distinguer les chaines de
    caractères suivies des chiffres. Cependant j'ai trouvé des documents sur le
    net à propos des descripteurs du genre '(a,i2,a,i6)' dans READ et WRITE qui
    définissent quel type de données doit etre lue ou écrites dans un fichiers.
    C'est assez compliqué car peu d'exemples clairs et complets sur ces
    descripteurs de format par exemple cette page

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    J'aimerai maintenant lire avec Fortran 90 la valeur de test3 par example. Est-il possible de lire une valeur après un mots clef? Si oui, quelqu'un pourrai me donner un petit example?
    Vu que ton fichier est formaté avec une même mise en forme pour chaque ligne, il n'est pas trop difficile de lire seulement les informations dont tu as besoin. Ce qui n'est pas trop clair dans ta question est si tu cherche seulement un élément particulier du fichier ou si tu les veux tous (éventuellement triés dans l'ordre donné par le nombre suivant 'test').
    Dans ce dernier cas, on peut s'en sortir avec quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    program lecture
     
    implicit none
     
    integer,parameter :: nblignes=4 ! nombre de lignes du fichier
    integer :: numero
    integer :: valeur
    integer :: donnees(nblignes) ! donnees, une fois rearrangees dans l'ordre
     
    integer :: i
     
    open(42,file="fichier.txt") ! on ouvre le fichier
    do i=1,nblignes
      ! on lit une ligne du fichier
      read(42,'(tr4,i1,tr3,i5)')numero,valeur
      write(*,*) "numero=",numero,"valeur=",valeur
      ! on stocke la donnee lue dans la case correspondante du tableau   
      donnees(numero)=valeur
    enddo
     
    write(*,*) "donnees() =",donnees
    end program lecture
    Tout repose sur le bon usage du descripteur de format de la lecture (trN = "sauter N caracteres" ; "iN" lire un entier de N chiffres").

    Bonne continuation.

Discussions similaires

  1. [Débutant] Deux questions concernants les vues
    Par 13obscur dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 19/04/2005, 15h29
  2. [Servlet + Class] question concernant plusieurs connections
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 29/11/2004, 17h39
  3. Réponses: 7
    Dernier message: 10/09/2004, 15h28
  4. [Indy] Questions concernant l'envoi de mail
    Par delphicrous dans le forum Web & réseau
    Réponses: 3
    Dernier message: 24/06/2004, 16h06
  5. Question concernant l'API "WaitforSingleObject
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 29/03/2003, 08h26

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