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: Boucle avec OPEN


Sujet :

Fortran

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Fortran: Boucle avec OPEN
    Bonjour,

    je bataille un peu sur un truc en fortran77.
    je souhaiterais crée une boucle qui permette d'ouvrir une succession de
    fichier plutôt que de faire plein de lignes avec open...

    là je vous montre ce que j'ai voulu faire pour juste deux fichiers:

    DO m=7,8
    OPEN(unit=m, FILE= 'questar300000',m,'-questar300000',m+1,'.res')
    END DO

    en fait je voudrais faire varier l'étiquette en même temps que le nom de
    fichier
    je ne sais pas si c'est trop possible...
    Voila si vous avez une idée je suis preneur

    merci d'avance

    cordialement,

    Grhum18

  2. #2
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    perso, je ferai un truc genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    character(len=99) str
    do m=7,8
    write(str,*)'questar300000',m,'-questar300000',m+1,'.res'
    OPEN(unit=m, FILE= trim(str))
    end do
    et il faut faire attention au fait que dans cette écriture, le m et le m+1 sont écrits sans '0' sur leur gauche...

    pour palier ce problème:

    exmple: si nt=10, ouvrir le fichier SOLUTION0000000010.res

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    write (str(1:),'(a8)') 'SOLUTION'
      k = len(trim(str(1:)))
      write (str(k+1:),'(i10)') nt
      m = len(trim(str(k+1:)))
      do i=1, m
        if (str(k+i:k+i)==' ') str(k+i:k+i)='0'
      end do
      write (str(k+m+1:),'(a4)') '.res'
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci,
    je vais essayer de suite

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Rebonjour,

    je ne comprend pas le "FILE= trim(str)"
    trim dois-il être défini avant?

    merci pour votre réponse

  5. #5
    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
    Points : 1 346
    Points
    1 346
    Par défaut
    Utilises seulement "File=Str". Trim() enlève les espaces à la fin de la variable, mais la norme Fortran prévoit déjà que les espaces à la fin de la variable contenant le nom du fichier sont ignorés...

    Trim() est une fonction introduite par la norme Fortran 90 et elle n'est malheureusement pas programmable en Fortran 77 standard si elle n'est pas disponible.

Discussions similaires

  1. [Fortran 77] Boucle avec condition
    Par feynman dans le forum Fortran
    Réponses: 5
    Dernier message: 21/04/2008, 15h24
  2. Fortran 77 avec Open Watcom
    Par paul30 dans le forum Fortran
    Réponses: 1
    Dernier message: 10/03/2008, 13h14
  3. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  4. Problème d'E.S. sur fichier avec open
    Par Bubonik software dans le forum C
    Réponses: 6
    Dernier message: 04/02/2004, 19h42
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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