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

 C Discussion :

Récupérer une matrice d'un fichier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 51
    Par défaut Récupérer une matrice d'un fichier
    Bonjour,

    je suis confronté à un problème tout simple, mais je ne sais pas exactement quel est la meilleur façon de m'y prendre.
    Le problème : J'ai une matrice représentés dans un fichier matrice.txt. Je dois la récupérer et la stocker en mémoire dans un tableau. J'ai donc par exemple un fichier du genre :
    1 52 3
    44 5 c
    Il faut donc que toutes mes lignes aient la même taille. S'il y a des caractères dans la matrice, ils doivent être interprétés comme des nombres. Il peut y avoir un retour chariot ou non à la fin du fichier et il peut y avoir des espaces en fin de ligne et en fin de fichier ou non. Le fichier n'est donc pas formaté selon des règles très précises.

    Comment dois-je m'y prendre ? Je suis sensé chercher le nombre de colonnes et de lignes ainsi que vérifier la validité de mon fichier à coup de fgetc puis ensuite récupérer les données grâce à fscanf ?
    Vérifier la validité du fichier à coup de fgetc me semble un peu lourd (et dégueulasse) à gérer. Je me demande donc s'il n'y a pas un moyen plus propre et plus élégant de le faire.

    Voila, merci d'avance pour vos éclaircissements.

    Bonne soirée

    PS : J'ai évidemment fais quelques recherches. J'ai trouvé plusieurs choses avec des fgets/fgetc/getc/.. Mais j'aimerais savoir ici la méthode qui serait la plus élégante à implémenter.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Tes matrices sont-elles toujours carrées ou peuvent-elles être rectangulaires ? Si réponse 1, il te suffit de compter le nombre de lignes non vides ; si réponse 2, il te faut en plus déterminer la taille de la première ligne.

    Ton traitement est assez simple et je pense qu'une grosse partie du temps sera passé à se déplacer et à lire les données. Le temps de traitement des données lues (simplement les mettre dans une matrice ?) sera court et tu pourrais signaler une erreur de format du fichier au cours de la lecture, quand tu la rencontres.

Discussions similaires

  1. récupérer une matrice à partir d'un fichier .xlat
    Par maroua_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/08/2011, 14h14
  2. Réponses: 0
    Dernier message: 23/06/2011, 10h39
  3. [DOM] Récupérer une partie d’un fichier HTML
    Par fadex dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 05/01/2007, 12h30
  4. Récupérer une string dans un fichier
    Par lynchmaniac dans le forum ANT
    Réponses: 3
    Dernier message: 27/12/2006, 16h22
  5. [XSL]récupérer une valeur de plusieurs fichiers XML
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 05/02/2006, 00h32

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