infrarouge77 | Bonjour, Je débute dans la lecture des fichiers avec Fortran. Je souhaiterai enregistrer tout un tas de mesures + des informations d'en tête d'un fichier qui a cette forme là :
Citation :
nomdufichier.txt DUREE : 105 mn
Paris Capteur1
DATE : 28/02/2014 HEURE DEB : 14:30:00 FIN : 14:35:00
LATITUDE : -60.00 LONGITUDE : 140.00
CIEL : clair
ALTITUDE : 160
Mesure1 Mesure2 Mesure3
0.19E+01 0.13E+02 0.25E+03
0.58E+01 0.13E+02 0.26E+03
0.64E+01 0.11E+02 0.75E+03
0.72E-01 0.12E+02 0.99E+02
|
L'objectif est de récupérer dans un type prédéfini toutes les infos de l'en-tête : nom du fichier, la durée des mesures (105), le lieu (Paris), le capteur, la date, les heures de début et de fin, la météo et l'altitude. Dans une variable d'un 2ème type prédéfini, je souhaiterai avoir les 3 réels d'une même ligne
Mon programme suit :
Citation :
PROGRAM Monprog
IMPLICIT NONE
! Déclaration des types dérivés
TYPE MESURE
REAL :: Mes1
REAL :: Mes2
REAL :: Mes3
END TYPE
TYPE ENTETE
CHARACTER(len=16) :: Nom_fichier
CHARACTER(len=14) :: Duree
CHARACTER(len=5) :: Ville
CHARACTER(len=8) :: Capteur
CHARACTER(len=23) :: Date
CHARACTER(len=20) :: Heure_debut
CHARACTER(len=14) :: Heure_fin
CHARACTER(len=25) :: Latitude
CHARACTER(len=25) :: Longitude
CHARACTER(len=25) :: Etat_ciel
CHARACTER(len=25) :: Altitude
END TYPE
TYPE TABLEAU_MESURES
CHARACTER(len=31) :: Legende
TYPE(MESURE), DIMENSION(4) :: Mesures
END TYPE
! Programme
IMPLICIT NONE
CHARACTER(len=255) :: Fichier !Adresse du fichier à lire
TYPE(ENTETE) :: Header
TYPE(TABLEAU_MESURES) :: Data
INTEGER (kind=4) :: ios, Size_record
INTEGER (kind=1) :: erreur
INQUIRE(IOLENGTH=Size_record) Header, Data !Taille de l'enregistrement à lire enregistrée dans Size_record
OPEN( UNIT=1, &
FILE=Fichier, &
FORM="formatted", &
ACCESS="direct", &
STATUS="old", &
ACTION="read", &
RECL=Size_record, &
IOSTAT=ios )
IF (ios/=0) THEN
erreur = 0
ELSE
READ(UNIT=1, REC=1) Header, Data
END IF
CLOSE(UNIT=1)
PRINT *,Header
PRINT *,Data
END PROGRAM
|
Les PRINT* m'affichent des caractères sans aucun sens, je suppose donc qu'il y a un problème de lecture (au niveau des formats, des dimensions, ou lors de l'ouverture du fichier....). Là je ne sais pas trop ce qui ne marche pas, pourriez vous me donner un petit coup de main svp ?
Merci d'avance! |