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

POSIX C Discussion :

fichier dans l'ordre alphabétique avec dirent


Sujet :

POSIX C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 21
    Points
    21
    Par défaut fichier dans l'ordre alphabétique avec dirent
    Bonjour à tous,

    Mon probème est dans le titre, j'aimerais que les fichiers d'un dossier listés avec dirent soient dans l'ordre alphabétique.
    Comment faire ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    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 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par drasalmed Voir le message
    Bonjour à tous,

    Mon probème est dans le titre, j'aimerais que les fichiers d'un dossier listés avec dirent soient dans l'ordre alphabétique.
    Comment faire ?

    Merci
    Désolé ceci est impossible. dirent() te donne les fichiers dans l'ordre dans lequel ils se trouvent dans le répertoire (ordre de création).
    Il te faut
    1) stocker tous les fichiers dans un tableau de noms (tableau dynamique évidemment)
    2) trier le tableau (qsort par exemple)
    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]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 21
    Points
    21
    Par défaut
    Ok merci, je voulais en être sûr. Malgré tout, même ma fonction de tri ne fonctionne pas. Regarde :

    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
     
    //Dans le .h
    char **tableauTri;
     
     
    //Fonction de tri
    void trier(char **tableau, int t){
    	char *temp;
    	int i, j;
     
    	temp = malloc(200);
     
    	for (i = 0; i < t; i++){
    		for (j = 0; j < t; j++){
    			if (strcmp(tableau[i], tableau[j]) < 0){
    				memcpy(temp, tableau[i], 200);
    				memcpy(tableau[i], tableau[j], 200);
    				memcpy(tableau[j], temp, 200);
    			}
    }

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    déjà pas de libération de la mémoire, et tu re-testes des trucs déjà triéset tu utilises memcpy alors que tu peux utiliser strcpy..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 21
    Points : 21
    Points
    21
    Par défaut
    Ok merci.
    C'est bon j'ai réussi. Merci encore.

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par drasalmed Voir le message
    Mon probème est dans le titre, j'aimerais que les fichiers d'un dossier listés avec dirent soient dans l'ordre alphabétique.
    Comment faire ?
    Super compliqué : mettre les noms dans un tableau de pointeurs, trier le tableau et l'afficher..

    Bon, l'usage de qsort() n'est pas trivial, mais ça fonctionne bien :

    http://emmanuel-delahaye.developpez.com/qsort.htm
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    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 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Super compliqué : mettre les noms dans un tableau de pointeurs, trier le tableau et l'afficher..
    Whaa te moque pas. Si personne ne lui a expliqué le fonctionnement de dirent() il peut pas le savoir (à la limite il peut le découvrir en tatonnant mais bon...) et tout le monde n'est pas forcément un super habitué du remplissage de tableau dynamique...
    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]

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

Discussions similaires

  1. [VBA-EXcel] classement des noeuds d'une treeview dans l'ordre alphabétique
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/01/2017, 19h02
  2. [XL 2010] Ouvrir des fichiers dans l'ordre alphabétique
    Par gangsterus dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2015, 12h03
  3. Lister fichiers dans l'ordre alphabétique
    Par RENAUDER dans le forum Langage
    Réponses: 1
    Dernier message: 07/02/2009, 09h31
  4. Réponses: 3
    Dernier message: 07/02/2008, 13h34
  5. Afficher des fichiers dans l'ordre chronologique
    Par navis84 dans le forum Langage
    Réponses: 8
    Dernier message: 12/07/2006, 15h49

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