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 de fichier à partir de la n-ème ligne


Sujet :

Fortran

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut Lecture de fichier à partir de la n-ème ligne
    Truc bête : je veux lire un très gros fichier de données mais uniquement à partir de la 36000è ligne.
    Quel est le moyen le plus rapide ???

  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!
    Ton fichier existe-t-il déjà?
    Si non, le plus simple est de l'écrire et de le relire en accès direct.
    Si oui, quel est le format d'une ligne?
    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
    Ça dépend de la structure du fichier.

    Si le fichier est rigoureusement rectangulaire (toutes les lignes ont exactement la même longueur), le Fortran te permet de l'ouvrir en accès direct et d'aller directement à la ligne voulue.

    Si c'est un autre type de fichier « structuré » (DBF, XLS, XML, ...), ça dépend vraiment de la structure interne du fichier. Fortran ne permet généralement pas de traiter ces fichiers, mais des librairies existent pour traiter plusieurs de ces fichiers.

    Si c'est un simple fichier texte, la seule solution « normale » est la méthode bête : tu lis dans le vide les lignes 1 à 35 999. La difficulté est que ces fichiers séquentiels (vrai sur Windows, DOS, Unix, Linux) n'ont pas de numéros de ligne insérés. Le problème n'est pas Fortran, mais la structure même des fichiers. Tu ne peux pas sauter à la ligne 36 000. Par définition, la ligne 36 000 est la suite de caractères comprise entre le 35 999 ième séparateur de ligne et le 36 000 ième. La seule façon d'y aller est donc de passer à travers tout le fichier et de compter les séparateurs. Dans certains cas, tu peux sauter au caractère 780 000 (par exemple), puis lire quelques caractères et déduire le numéro de ligne. Si ce n'est pas la bonne ligne, tu réessaye en sautant ailleurs.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5
    Par défaut
    arg c'est bien ce que je craignais
    le fichier existe déjà et est malheureusement de format texte non structuré ...

Discussions similaires

  1. Problème lecture des fichiers à partir du jar
    Par encours dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 19/09/2011, 17h15
  2. [dlmread] lecture de fichier à partir de la ligne 2
    Par polopolo81 dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/04/2011, 14h17
  3. Réponses: 26
    Dernier message: 13/11/2008, 15h57
  4. Lecture d'un fichier à partir de la nième ligne
    Par May69 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 17/02/2007, 09h29
  5. Lecture d'un fichier à partir d'un formulaire
    Par Dirty Harry dans le forum Langage
    Réponses: 7
    Dernier message: 01/02/2007, 16h39

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