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 :

lire une série de répertoires


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut lire une série de répertoires
    Bonjour, j'ai tous plein de répertoires nommés Part2, Part3 etc... Les numéros ne sont pas tous consécutifs !!
    Ce que j'aimerais, c'est faire une boucle sur tous ces répertoires et récupérer le fichier Mean.txt qui s'y trouve. Comment puis-je faire ? Quelle(s) fonction(s) dois-je utiliser ?
    Merci.

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Pour ouvrir un répertoire :

    opendir : http://man.developpez.com/man3/opendir.3.php

    Pour lire les éléments d'un répertoire :

    readdire : http://man.developpez.com/man2/readdir.2.php

    Pour ouvrir un fichier :

    fopen : http://man.developpez.com/man3/fopen.3.php

    Pour lire dans un fichier :

    fgets : http://man.developpez.com/man3/fgets.3.php

    Jc

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Merci, mon prgm marche très bien !!
    Mais j'ai un pb pour l'ordre de la lecture : le prgm commence par lire le fichier Part100 puis Part105 etc jusqu'à Part400 puis il fait Part2 jusqu'à Part9 et enfin il fait Part10 jusqu'à Part95.
    J'aimerais qu'il lise les répertoires dans l'ordre croissant : Part2 jusqu'à Part95, etc...
    D'autant plus que dans mon ordinateur, les répertoires sont rangés dans l'ordre
    Part10, Part100, Part105, Part11, Part110, Part115, etc
    Savez-vous comment faire ?
    Merci.

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par salseropom
    Merci, mon prgm marche très bien !!
    Mais j'ai un pb pour l'ordre de la lecture : le prgm commence par lire le fichier Part100 puis Part105 etc jusqu'à Part400 puis il fait Part2 jusqu'à Part9 et enfin il fait Part10 jusqu'à Part95.
    J'aimerais qu'il lise les répertoires dans l'ordre croissant : Part2 jusqu'à Part95, etc...
    D'autant plus que dans mon ordinateur, les répertoires sont rangés dans l'ordre
    Part10, Part100, Part105, Part11, Part110, Part115, etc
    Savez-vous comment faire ?
    Merci.
    Juste parce que le système d'exploitation est assez gentil pour trier les fichiers/répertoires cela ne veut pas dire que ceux-ci sont triés...

    Pour les trier, tu devras alors sûrement stocker tous les noms de répertoires, les trier (voir la fonction qsort), et seulement ensuite les ouvrir.

    Jc

  5. #5
    Membre émérite
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Par défaut
    Citation Envoyé par salseropom
    Merci, mon prgm marche très bien !!
    Mais j'ai un pb pour l'ordre de la lecture : le prgm commence par lire le fichier Part100 puis Part105 etc jusqu'à Part400 puis il fait Part2 jusqu'à Part9 et enfin il fait Part10 jusqu'à Part95.
    J'aimerais qu'il lise les répertoires dans l'ordre croissant : Part2 jusqu'à Part95, etc...
    D'autant plus que dans mon ordinateur, les répertoires sont rangés dans l'ordre
    Part10, Part100, Part105, Part11, Part110, Part115, etc
    Savez-vous comment faire ?
    Merci.
    Si tu regardes bien tes répertoires sont correctement triés. Si tu veux l'ordre 1 .. 2 ect, tu devras renommer tes répertoires comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Part001
    Part002
    ..
    Part010
    ...
    Part100
    ...
    Part999
    Voila

  6. #6
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Elijha
    Si tu regardes bien tes répertoires sont correctement triés. Si tu veux l'ordre 1 .. 2 ect, tu devras renomer tes répertoires comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Part001
    Part002
    ..
    Part010
    ...
    Part100
    ...
    Part999
    Voila
    Non, je ne suis pas d'accord...

    C'est écrit nul part dans le man de readdir que les fichiers sont donnés dans l'ordre alphabétique et, à mon avis, ce n'est pas le cas...

    Jc

  7. #7
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Exemple :

    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
    include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <dirent.h>
     
    int main()
    {
            DIR *r;
            struct dirent* file;
     
            r = opendir("Skel");
     
            if(r) {
                    while((file=readdir(r))!=NULL) {
                            printf("%s\n",file->d_name);
                    }
            }
            return 0;
    }
    Et on obtient :

    [tmp]$ ./a.out
    .
    ..
    GameEngine.h
    sdlapp.cbp
    sdlapp.layout
    Skeleton.h
    GameEngine.cpp
    Skeleton.cpp
    icone.png
    GameSkeleton.zip
    Ce n'est pas trié...

    Jc

  8. #8
    Membre émérite
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Par défaut
    Citation Envoyé par fearyourself
    Non, je ne suis pas d'accord...
    C'est écrit nul part dans le man de readdir que les fichiers sont donnés dans l'ordre alphabétique et, à mon avis, ce n'est pas le cas...
    Jc
    Humm, désolé, je me suis mal exprimé. (On prend son souffle) Ce que je voulais dire, c'est même après un tri de ses noms de répertoires, il aura toujours "Part10" avant "Part2", et le seul moyen d'avoir "Part2" avant "Part10" est, soit de faire une conversion numérique du nombre....ce qui peut être fastidieux à réaliser ou bien tout simplement de renommer "Part2" en "Part02". Comme le caractère '0' est avant le caractère '1', obligatoirement après son tri, les noms de répertoires seront triés dans l'ordre numérique.
    (Pffff, va falloir que je mette plus de points dans mes phrases moi )

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

Discussions similaires

  1. Lire une trame série contenant des sauts de lignes
    Par Jugulaire dans le forum Réseau
    Réponses: 4
    Dernier message: 03/04/2015, 08h33
  2. [XL-2007] Création d'une série de répertoire sur le bureau
    Par Jeromeric dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/12/2011, 23h51
  3. Réponses: 21
    Dernier message: 09/12/2010, 10h26
  4. Comment lire une pin sur le port série du pc
    Par KENPACHI dans le forum LabVIEW
    Réponses: 1
    Dernier message: 25/05/2007, 12h56
  5. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11

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