Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/07/2012, à 13:36

jbbaudouin

fortran lire une colonne spécifique d'un fichier

Bonjour à tous,

Je cherche à écrire un programme en fortran 90.
Le but de ce programme est pour l'instant de lire une colonne spécifique dans un fichier.
le fichier ce présente de la manière suivante :

# STEP   TIME(ps)     EPOT   EION   EELEC    EKIN  ETOT   MSQ(ETOT)
       100  1.000000E-01 -4.111966E+00 -1.994293E+00 -2.117673E+00  3.707901E-02 -4.074887E+00  2.158062E-03
       200  2.000000E-01 -4.105900E+00 -1.988289E+00 -2.117611E+00  3.819495E-02 -4.067705E+00  5.349007E-04
...

et je voudrais lire une colonne (par exemple la troisième en partant de la gauche), pour ensuite écrire cette même colonne dans un autre fichier.

J'espère avoir donné assez d'informations,

Je vous remercie par avance de vos réponses,

jbbaudouin

Hors ligne

#2 Le 04/07/2012, à 14:35

pingouinux

Re : fortran lire une colonne spécifique d'un fichier

Bonjour,
Voici un exemple à adapter Exemple F90
D'après mes vieux souvenirs de F90, on peut aussi mettre les 2 premières colonnes dans des variables "bidon" :

read *, bidon1, bidon2, valeur_colonne_3

Une autre solution, si le colonnage est fixe, est d'utiliser le read formaté

read 'T26,E13.7', valeur_colonne_3

Hors ligne

#3 Le 04/07/2012, à 14:46

jbbaudouin

Re : fortran lire une colonne spécifique d'un fichier

désolé mais je débute en fortran.
le colonnage est effectivement fixe (sauf pour la première ligne).
Peux-tu si possible détailler un peu le prg lorsque on utilise le read formaté.

Je te remercie par avance,

jbbaudouin

Hors ligne

#4 Le 04/07/2012, à 15:03

pingouinux

Re : fortran lire une colonne spécifique d'un fichier

Dans mon exemple en #2, je lis la valeur qui commence en colonne 26, ce qui correspond à ton fichier en #1.
N'hésite pas à consulter la documentation. Quand tu auras un bout de programme, si ça ne marche pas, montre-le ici.

Hors ligne

#5 Le 04/07/2012, à 15:09

jbbaudouin

Re : fortran lire une colonne spécifique d'un fichier

voici mon bout de prg:

program lire
open(20,file='fichier_lire.e')
read ('T26,E13.7', valeur_colonne_3)
end program lire

lorsque je l'execute celui me sort le message suivant :

test_2.f90:5.18:

read ('T26,E13.7', valeur_colonne_3)
                  1
Error: FORMAT tag at (1) must be of type CHARACTER or INTEGER

je suppose que je dois déclarer valeur_colonne_3 comme une valeur 'double'?

en tout cas merci pour tes réponses

jbbaudouin

Hors ligne

#6 Le 04/07/2012, à 15:27

pingouinux

Re : fortran lire une colonne spécifique d'un fichier

Mes souvenirs sont assez lointains.

Je ferais ceci :

read (20,'T26,E13.7') valeur_colonne_3

je suppose que je dois déclarer valeur_colonne_3 comme une valeur 'double'?

Oui

Il faut aussi lire à part la première ligne, qui contient les titres, et faire une boucle sur les suivantes.

Hors ligne

#7 Le 04/07/2012, à 15:55

jbbaudouin

Re : fortran lire une colonne spécifique d'un fichier

je te remercie pour tes réponses, je vais voir ce que cela donne

jbbaudouin

Hors ligne