Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1211 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [FORTRAN] Lecture d'un fichier:problème récupération en-tête +mesures

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[FORTRAN] Lecture d'un fichier:problème récupération en-tête +mesures

n°2221283
infrarouge​77
Posté le 03-03-2014 à 10:43:38  profilanswer
 

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!

mood
Publicité
Posté le 03-03-2014 à 10:43:38  profilanswer
 

n°2221471
rufo
Pas me confondre avec Lycos!
Posté le 04-03-2014 à 16:20:09  profilanswer
 

J'ai l'impression que le fichier que tu nous as présenté en début de post n'a pas été enregistré via un programme qui utilises la structure que tu as définie (ENTETE).
Si j'ai raison, fais un test : tu crées une variable de type ENTETE, tu y mets des données puis tu enregistres dans un fichier txt. Ensuite, tu essayes de le relire en le chargeant dans une structure ENTETE. Si tout s'affiche correctement, c'est OK et c'est juste que le fichier que tu essayes de lire comporte de petites différences (ex : des caractères non imprimables, des espaces ou d'autres séparateurs...).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [FORTRAN] Lecture d'un fichier:problème récupération en-tête +mesures

 

Sujets relatifs
Activer un fichier Word à partir d'une macroStockage d'un fichier dans l'exe et écriture sur HDD à la prem. exec.
[HELP] modificateur de plusieur fichier texteComment génerer un fichier csv à partir d'une base de données?
injection dans fichier .JSProbéme de codage pour lire la taille de fichier texte
Besoin d'aide pour fichier gestion absence en VBAInjecter un fichier CSV avec un script php
[RESOLU][PowerShell] Pb Impor-csv et recuperation en variableDécompresser un fichier son
Plus de sujets relatifs à : [FORTRAN] Lecture d'un fichier:problème récupération en-tête +mesures


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR