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 :

Comment ignorer les commentaires lors de la lecture d'un fichier .pgm ?


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2022
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment ignorer les commentaires lors de la lecture d'un fichier .pgm ?
    Bonjour,

    Je travaille dans le cadre d'un projet de traitement d'image sur la récupération des données (valeurs de teintes des pixels) d'un fichier pgm/ppm :

    Voici le code de la fonction :
    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
    27
    28
    29
    30
    31
    32
     
    int* lecture_fichier_entete_monochrome(char nomfichier[], int* dim)
    {
        FILE* fichier;
        fichier = fopen(nomfichier,"r"); // Ouverture du fichier en lecture grāce ą "r"
        int i;
        int* tab_lecture;
     
        int largeur;
        int hauteur;
        int dim_teinte;
     
        if (fichier != NULL)    // Si le fichier n'est pas vide
        {
            fscanf(fichier,"P2");  // Lecture de la premiere ligne ("P2")
            if
            fscanf(fichier,"%d %d",&largeur,&hauteur);  // Lecture et récupération de la largeur et de la hauteur
            fscanf(fichier,"%d",&dim_teinte);
     
            *dim = largeur*hauteur;
     
            tab_lecture = malloc(*dim*sizeof(int));     // On donne au tableau la dimension de la hauteur*largeur
     
            for(i=0 ; i<*dim ; i++) // Connaissant la dimension, on recupere maintenant les valeurs de l'image
            {
                fscanf(fichier,"%d",&tab_lecture[i]);	// Lecture = Copiage
            }
            fclose(fichier);		// Fermeture du fichier
        }
     
        return tab_lecture;
    }
    Or cette dernière ne prend pas en compte si il y a des commentaires # dans le fichier.

    Je ne sais pas comment "prévoir" qu'ils peuvent être dans le fichier.

    Avez-vous des solutions pour résoudre mon problème ?

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    C'est évident

    Soit tu utilises 1 bibliothèque qui parse les images portable pixmap (laquelle je ne sais pas )

    Soit tu codes 1 "vrai" parser, 1 parser + évolué que prendre ligne par ligne et espérer d'avoir les bonnes informations aux bonnes lignes.
    Tu peux, par exemple, parser le premier caractère non espace/ tabulation pour savoir si c'est 1 commentaire.

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Tho_pix Voir le message
    Or cette dernière ne prend pas en compte si il y a des commentaires # dans le fichier.
    Ca ne devrait pas poser de souci vu que tu lis les datas numériques, les "#" éventuels ne sont alors pas pris en compte lors des scanf("%d")...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/03/2020, 02h07
  2. Ignorer les premières lignes a la lecture d'un fichier
    Par DJEcalcul dans le forum MATLAB
    Réponses: 4
    Dernier message: 10/04/2014, 18h52
  3. Comment sauter une ligne lors de la lecture d'un fichier?
    Par bourgeoisvalere dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 22/07/2013, 11h45
  4. Comment mesurer les performances des I/O (lecture d'un fichier XML)?
    Par LGnord dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 08/11/2011, 11h39
  5. Réponses: 1
    Dernier message: 30/05/2011, 11h36

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