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 :

Fichier .dat mé illisible


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Par défaut Fichier .dat mé illisible
    Bonjour
    J'ai un programme qui me donne des fichier.dat de valeurs de vitesse et de température pour chaque période de temps. Le problème que lorsque j’exécute ce code, j'obtiens des fichier.dat illisibles et dans lesquels il n'y a pas de valeurs mais plutôt des caractères différents:
    Voici la partie du programme qui consiste à enregistrer les valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
      if (mod(pc,real(ndiag,db))==0) then
          write(*,fmt='(A,I0,A,I0,A)') ' Time step = ',time,' (',nint(pc),'%)'
          call cpu_time(etime)
          if (etime<3600.0_db) then
            write(*,fmt='(A,F0.2,A)') ' Estimated time remaining ',(t_max-time)*(etime-stime)/real(time,db)/60.0_db,' minutes'
          else
            write(*,fmt='(A,F0.2,A)') ' Estimated time remaining ',(t_max-time)*(etime-stime)/real(time,db)/3600.0_db,' hours'
          endif
        endif
     
        if (mod(time,framerate)==0) then
          write(fname,fmt='(F0.2,A,I0,A)') output,'_',time,'.dat'
          open(unit=1,file=fname,form='unformatted')
          write(unit=1) U
          write(unit=1) V
          write(unit=1) rho
     
          close(unit=1)
          if (time==t_max) then
            open(unit=1,file='f.dat',form='unformatted')
            write(unit=1) f
          endif
        endif
     
        return
    et voici une partie de ce que je trouve comme résultats au niveau des fichiers:
    È> ;qTå‘Àé>z{RþÂËô>v®¯ù>G~@HØD ?¿ÚÈþyÔ?H(XÞæD?ÙmƒMz?’æ"‡TX?åÒ•ë$?Âgò<yz?ej2*Z?\=iwÁM?D µ$œÜ ?_)½pþ>*‡PâmÔú>¾«p(Gëö>½Sx¦²ò>G0IkRì>*ßJ%~¤â>›H"µEªÐ>HNžÈ´¾ÀV‰Á·Sܾíõ ¹Qê¾×~ä†ó¾¨-š]Ì(ú¾ Œ6°E… ¿–Ôëù¿|“h¹T¸¿ûÔ<Û/t ¿8*~A¿;Wá1䌿:UrT}¿æö§Ëm¿Žl%¶<[¿0q5kB¿ë“*俴⸰-í¿t£4À¨¨¿*Rþïà& ¿¤#á÷ì ¿…åà§Ã¡!¿#‡áúE"¿~>ÑôÖ"¿%•CšR#¿}Í 7·#¿„f…9n$¿´\8=«5$¿hºè•”L$¿…< §kG$¿þÏDå`%$¿Á|cܾå#¿* Ê{ˆ#¿‹&{µ
    #¿ô32”u"¿ZÓT‘ÚÀ!¿Ò#Ÿð ¿ÿçÝñ ¿uÿ~óÚ¿ç™c³0п¸¨¬èÆq¿†[$î¿€M¡ðJ¿úü4’¿î‚é˜w
    ¿Ö®]¶¿ÓÛÜEæ¿)·¶h%ø¾S]”iÿ!é¾dà9_†¤²¾éñæìã>\ý¡Þ¸ô>v&=(ûÿ><€Ž’nc?ì*Ýeðó?’E\+
    ?9²ú?•
    ÌLœ5?Šþrø ³?ï®Øsõ?'扣Îú?´ßâõÀ?¿ù_RF?´ÈäØÕŠ? JœnŽ?<'ì÷SO?«YΧ“Ï?qµ¿¶*?Iºüzä?uÅ×Ü?àêmDo?"(.Ò?¢p“> ?_eÍÀ
    ?G ñÞ† ?”dÝ4â?xà§û>²$–çÇò>˜l'¢G0í>އµFTâ> ÞÓ‚Qõò>Œõ!¶?

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          write(fname,fmt='(F0.2,A,I0,A)') output,'_',time,'.dat'
          open(unit=1,file=fname,form='unformatted')
    Tu pourrais faire inscrire ces deux lignes de code au Guiness comme détenant un nombre record d'erreurs et de maladresses:
    1. Tu écris (write) sur un fichier avant de l'avoir ouvert (open).
    2. Tu écris en mode formaté dans un fichier ouvert en mode non formaté.
    3. La variable output occupe zéro caractères dont deux après la virgule, et la variable time zéro caractères.
    4. Dans l'instruction write, tu indiques le nom du fichier à la place de son numéro.
    5. Tu donnes à ton fichier le numéro 1, ce qui est dangereux, parce que, pour des raisons particulières, les numéros 0 à 7 peuvent avoir des significations particulières.


    Jean-Marc Blanc

  3. #3
    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
    Par défaut
    Jean-Marc,

    Tu dois te servir un autre café, puis relie le programme !

    Le write sert à générer un nom du fichier, puis à ouvrir un fichier de ce nom. Le 0 dans le f0.2 rend la largeur ajustable au minimum requis.

    Par contre j'endosse totalement ton commentaire sur le unit 1.

    En passant, écrire unformatted sur le unit 1, ça me semble un (très) ancien programme (pré-1980) dans lequel le unit 1 correspondait au tape drive. Il était alors commun d'écrire sur une bande magnétique unformatted.

    Retour à nouhé : ton fichier est unformatted. C'est un fichier binaire, mais avec une structure de « record » avec des codes (repères) internes. Tu peux chercher le forum Fortran avec unformatted. Tu devrais trouver de l'information pour progresser.

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 6
    Par défaut
    Merci de votre aide
    le programme tournait normalement pas de message d'erreurs.
    Par contre le nom du fichier d'enregistrement dépends du temps.
    mon problème était dans la form : "unformatted" que j'ai pas maîtriser.
    pour ceci j'ai changé complètement le mode d'enregistrement et ça a marché
    Merci encore

Discussions similaires

  1. problème récupération de données dans des fichiers .DAT
    Par indymontpellier dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/04/2006, 07h54
  2. Fichier dat : comment l'exploiter ?
    Par denisfavre dans le forum Access
    Réponses: 21
    Dernier message: 02/03/2006, 22h39
  3. Importer un fichier dat dans access ou excel
    Par denisfavre dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 15h39
  4. Les fichiers .DAT
    Par mohamed dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 13/12/2005, 11h04
  5. exportation : fichiers .dat et .key
    Par Crab dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 13/09/2004, 14h51

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