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 :

lecture en block


Sujet :

Fortran

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut lecture en block
    Bonjour,

    je voudrais lire un tableau T(i,j,k) dans un fichier *.dat avec un simple read sans le stocker dans la variable T en connaissant imax,jmax,kmax.

    j'ai fait le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    integer none
    integer i,j,k,imax,jamx,kmax
     
    do i=1,imax ! je suis obligée dans mon code d'utiliser ce do sur le i
    read(4,*) ((none,j=1,jmax),k=1,kmax)
    enddo
    mais je génère une erreur, car la variable none
    vous auriez une idée?

    Manal

  2. #2
    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
    Points : 1 346
    Points
    1 346
    Par défaut
    Citation Envoyé par manaliac Voir le message
    ...mais je génère une erreur, car la variable none
    vous auriez une idée?...
    Manque un bout de texte je crois.

    De plus, ton code est un peu ambigu. Tu devrais utiliser un implicit none, et nommer ta variable autrement que none...

  3. #3
    Membre éclairé Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Points : 825
    Points
    825
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    integer T
    integer i,j,k,imax,jamx,kmax
     
    do i=1,imax ! je suis obligée dans mon code d'utiliser ce do sur le i
    read(4,*) ((T(i,j,k),j=1,jmax),k=1,kmax)
    enddo
    ça, ça marche, en revanche il faut que les variables soient bien rnagée dans ton fichier...

    (oups)

    pardon, tu ne voulais pas stocker T dans ce cas, utilise le "advance='no'" dans le read pour le forcer à ne pas aller à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    integer Toto
    integer i,j,k,imax,jamx,kmax
     
    do i=1,imax ! je suis obligée dans mon code d'utiliser ce do sur le i
      do k=1,kvoulu
       do j=1,jvoulu
         read(4,*,advance='no') toto
       end do
      end do
    enddo
    et là tu aura dans toto la valeur de T(i,jvoulu,kvoulu)
    il n'y a que ceux qui savent qui ne savent pas qu'ils savent...
    Libere-toi hacker, GNU's Not Unix!!!

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    pardon, tu ne voulais pas stocker T dans ce cas, utilise le "advance='no'" dans le read pour le forcer à ne pas aller à la ligne:
    Qu'est ce que cela veut dire?

    Comme je parcours mon fichier en mode séquentiel, je dois lire ce tableau pour passer à la ligne d'après qui m'intéresse,mais comme le tableau est écrit en block, je ne sais pas combien de lignes il contient.

    Merci

  5. #5
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Bonjour

    Tu n'as pas un repère dans le fichier qui indique la fin du tableau ? Une ligne blanche ou un mot ou quelque chose ?

    Pour ce qui est de sauter ton tableau, quand tu dis qu'il est écrit en bloc, tu veux dire sur une seule ligne ?

    Le advance="no" permet de ne pas avancé dans à la ligne suivante. Normalement, chaque fois que tu écris read ( ... ) ... à la fin de la lecture tu passes à la ligne suivante, même si tu n'as pas lu la ligne entière.

    Voilà un exemple dans le cas d'une écriture

    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
     
    program test
      implicit none
      integer :: a, b, c
     
      a = 1
      b = 2
      c = 3
     
      write(*,"(i4)") a
      write(*,"(i4)") b
      write(*,"(i4)") c
      write(*,*)
      write(*,"(i4)",advance="no") a
      write(*,"(i4)",advance="no") b
      write(*,"(i4)",advance="no") c
     
    end program test
    en sortie tu auras :


Discussions similaires

  1. code::block en mode debug: lecture du contenu des vectors
    Par membreComplexe12 dans le forum C++
    Réponses: 7
    Dernier message: 03/05/2011, 10h52
  2. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43
  3. Pb Lecture de bitmap monochrome
    Par Loïc38 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/07/2002, 18h24
  4. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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