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 :

Récupération de données dans un fichier.dat


Sujet :

Fortran

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Récupération de données dans un fichier.dat
    Bonsoir à tous.

    Voila il s'avère que j'ai récupéré un fichier que j'ai transformé en fic.dat et je voudrais lire certaines infos pour ensuite les réécrire dans un autre fichier à l'aide d'un fortran. Voila ce dont à quoi ressemble mon fichier:

    Texte
    Texte
    Subcase 1
    EL c1 c2 c3
    01 10 15 12
    02 40 53 36
    03 53 83 93
    04 74 83 83
    05 22 25 84
    06 47 90 22
    07 24 63 25
    08 23 53 53
    09 53 83 17
    10 52 29 48
    Subcase 2
    EL c1 c2 c3
    01 10 10 12
    02 48 53 69
    03 36 83 38
    04 74 33 87
    05 24 25 46
    06 47 90 22
    07 24 63 25
    08 23 51 53
    09 53 32 17
    10 52 21 48
    Texte
    Texte

    En fait, je ne voudrais récupérer que les colonne des éléments et de la charge 2(c2) et ce, pour chaque subcase pour ensuite pouvoir les utiliser. Quelqu'un aurait une idée ou aurait déjà fait un programme de ce genre?
    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonsoir,

    il s'agit de la lecture d'un fichier texte assez basique, c'est une opération courante en fortran dès lors que l'on manipule des fichiers de données.

    qu'est ce qui te bloque exactement ?

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    En fait, le fichier que j'ai ne me sert que d'exemple. Il faudrait que je puisse relever ces mêmes valeurs sans savoir à quelle ligne je dois me placeret donc donner un i allant de tant à tant. Je cherche à dénombrer les lignes que j'ai pour atteindre celle qui me permettra d'extraire mes infos. Mais je ne sais pas comment faire à partir d'une chaine de caractère. J'ai tenté quelque chose du genre:

    ligne=1
    mot='toto"
    tant que mot1 /=mot
    ligne = ligne +1
    fin

    Il faudrait que je puisse dire tant que mot1(ligne)/=mot mais je ne sais pas comment faire. Peux tu m'aider?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    oui bien sûr, dans ton fichier, il y a des "blocs" qui commencent par "Subcase". on peut imaginer une première boucle qui va détecter le premier subcase avec un test comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ligne(1:7)=="Subcase") then
    une fois le premier subcase identifié, il suffit de passer la ligne avec les entêtes des colonnes, puis de lancer une boucle qui va faire l'acquisition des éléments et des charges.

    est ce que le nombre d'élément par subcase est constant d'un subcase à l'autre et est ce qu'une donnée (interne ou externe au fichier) te permet de connaitre le nombre d'éléments par subcase avant la lecture du fichier ?

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    dans le fic.dat que j'ai oui mais je ne crois pas que ce soit le cas dans le cas général. cela serait plus simple si le nombre d'éléments était équivalent quelque soit le subcase... Je comprends ton cheminement mais comment passer à la ligne?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (ligne(1:7)=="subcase") then
     ...
    else
      ligne=ligne+1
    Cela suffirait? Je sais que ma question est un peu (beaucoup même) bête mais ça fait un moment que je n'ai pas pratiqué donc...

    Merci de ton aide.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    devrait suffire pour sauter une ligne

    pour lire une ligne:


  7. #7
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    bonjour

    j'ai fait un prg mais au final, il ne lit que la première ligne de mon fichier.dat
    je voudrait connaitre mon nombre de ligne jusqu'à tel mot mais sans faire de boucle do. Comment définir ligne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    character(len=100)::ligne
    et comment lire tous les mots de la meme ligne?

    Merci

  8. #8
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    Citation Envoyé par alapp Voir le message
    j'ai fait un prg mais au final, il ne lit que la première ligne de mon fichier.dat
    c'est que tu ne fais qu'un seul read

    Citation Envoyé par alapp Voir le message
    je voudrait connaitre mon nombre de ligne jusqu'à tel mot mais sans faire de boucle do. Comment définir ligne?
    ce n'est pas à la déclaration de ligne que cela se joue mais inévitablement par une boucle do:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do while(.true.)
       read(unit,*)ligne
       if (ligne(1:7)=="Subcase") exit
    end do
    Citation Envoyé par alapp Voir le message
    et comment lire tous les mots de la meme ligne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    read(unit,*)mot1,mot2,mot3,mot4
    montre nous ton programme

Discussions similaires

  1. récupération de données dans un fichier texte
    Par capucine1983 dans le forum Langage
    Réponses: 4
    Dernier message: 30/06/2007, 00h16
  2. Réponses: 1
    Dernier message: 05/09/2006, 17h56
  3. problème récupération de données dans des fichiers .DAT
    Par indymontpellier dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/04/2006, 07h54
  4. Réponses: 16
    Dernier message: 10/11/2005, 21h10
  5. Réponses: 6
    Dernier message: 23/10/2005, 12h24

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