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 sur plusieurs records à la fois


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut Lecture sur plusieurs records à la fois
    Hello,

    J'ai ouvert en lecture un fichier en accès direct avec des records d'une certaine taille (la même que celle utilisée lors de l'enregistrement). J'aimerai pouvoir lire plusieurs records d'un coup. C'est possible ? L'écriture naïve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    read (1, rec=(1:5), iostat = err) tableau
    m'indique que je demande trop de données, donc que je dépasse la taille du record (le fichier a suffisamment de données, j'ai vérifié).

  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
    Par défaut
    Je ne pense pas que tu puisses. À mon avis, les 2 solutions sont :
    • Une boucle
    • Un plus gros recsize au open pour couvrir toute la plage

    La boucle est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    do k = 1, NbLigne
       read(Unit,rec=Debut+k-1) Tableau(:,k)...
    Le plus gros recsize est une solution simple mais plus limitée: Tu dois te déplacer par plus gros incréments. De plus, certains O/S (quoique devenu rares) ne le permettent pas (le recsize fait parfois partie du file system).

    J'allais oublier. Je ne connais pas vraiment, mais va voir du côté des streams de Fortran 2003.

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Fortran 2003, j'évite, je préfère rester au 90/95 pour le moment.
    Bon, en résumé, il va falloir que je lise plus gros. Je vais modifier ma manière de penser, et on devrait réussir à trouev rune solution

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008R2] Comment déployer des packages sur plusieurs instances à la fois ?
    Par clementratel dans le forum SSIS
    Réponses: 0
    Dernier message: 28/10/2013, 13h20
  2. [XL-2010] Validation de données sur plusieurs feuilles à la fois
    Par rainette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/12/2012, 14h55
  3. Réponses: 0
    Dernier message: 08/08/2011, 22h30
  4. [MySQL] Problème de lecture sur plusieurs tables simultanément
    Par jonathanlafl dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/08/2010, 09h15
  5. UPDATE sur plusieurs colonnes à la fois
    Par yuukuari dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/11/2009, 14h46

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