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 :

Problème d'écriture dans fichier


Sujet :

Fortran

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème d'écriture dans fichier
    Bonjour,

    J'ai commencé le langage Fortran il y a a peu près 1 mois.
    Dans le cadre de mon stage, j'ai repris un code Fortran (assez complexe). Ce programme calcul et renvoi un certain nombre de données que je suis sensé traiter avec Matlab pour pouvoir les visualiser.
    Les données calculées sont écrites dans un fichier .dat.

    Mon problème semble plutôt simple mais est très dérangeant pour la suite. En effet je n'arrive pas à écrire les données dans le fichier .dat tel que je le veux. Je souhaiterai avoir les données que le programme fourni avec 10 colonnes (représentant mes 10 variables de sortie).

    La ligne que j'utilise est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    do
    do
    ...
    write (out_unit,*) flag,t,x,y,vx,vy,e_eq ,w ,sigma11 ,i 
    end do
    end do
    J'aimerai que pour chaque incrément mes variables sortent par ligne séparées en 10 colonnes.

    Pour le moment, mes 10 variables sont sur 5 colonnes et 2 lignes. C'est très embêtant pour l'exploitation avec Matlab car il considère alors qu'il n'y a que 5 variables.

    J'ai évidement regardé un bon nombre de topic, et testé les commandes du type
    ou de mettre un format dans le write mais rien n'y fait. La solution que j'ai prise pour me dépanner est d'écrire les résultats dans deux fichiers différents. Cela n'est pas très pratique.

    Voila, j’espère m'être fait à peu près comprendre et si certains ont une idée de comment résoudre ce problème, ce serait vraiment sympa.

    Erratum: En faite, après d'autres recherches il semblerait qu'on puisse créer notre propre format pour l'écriture. Je ne comprend cependant pas très bien comment cela fonctionne.

  2. #2
    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,

    Oui, il te faut préciser le format d'écriture (au lieu d'un bête '*').
    C'est décrit dans tout bon cours de Fortran, par ex ici

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    Alors, en cherchant un peu j'écris désormais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WRITE(out_unit,'(/I5,I5,8e12.4,8e12.4,8e12.4,8e12.4,8e12.4,8e12.4,8e12.4,8e12.4)')flag,i,t,x,y,vx,vy,e_eq ,w ,sigma11
    Cependant, j'ai toute mes données écrites à la suite et il ne prend pas en compte le retour à la ligne que je lui demande avec / (si j'ai bien compris).

    Nom : resultst.png
Affichages : 168
Taille : 53,4 Ko

    L'image ci-dessus montre mes résultats telles que je les voudrais dans la partie du dessus et les résultats que me donne sort mon programme (partie basse) avec la commande ci-dessus.

  4. #4
    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
    Il n'y a pas à demander un retour à la ligne; il est implicite à la fin d'une instruction "write"
    Tu ne donnes pas assez d'information pour t'aider: "flag,i,t,x,y,vx,vy,e_eq ,w ,sigma11" sont-ils tous des scalaires ou y-a t’il des tableaux dans le lot?
    Si ce sont bien des scalaires, alors ton instruction implique bien d'écrire les 10 en une fois sur une ligne (nonobstant le '/' en début de format).

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour votre aide, ce ne sont que des entiers et des réels.

    J'ai finalement réussi à faire ce que je voulais en utilisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    200 FORMAT(T10,2(I5),8(8e12.4)//)
    WRITE(out_unit,200),flag,i,t,x,y,vx,vy,e_eq ,w ,sigma11
    Du coup je suppose que cela fonctionnerai en enlevant le // dans le format.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2012, 11h44
  2. [FTP] problème d'écriture dans un fichier
    Par oops! dans le forum Langage
    Réponses: 14
    Dernier message: 08/08/2006, 16h52
  3. problème d'écriture dans un fichier
    Par seurjer dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 09h15
  4. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  5. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28

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