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

Discussion :

QDir::time pour QFileInfoList défaillant

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 289
    Par défaut QDir::time pour QFileInfoList défaillant
    Bonjour, je voudrais trier des fichiers dans l'ordre de date de modification de ces derniers. J'utilise donc le code suivant :

    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
    #include <Qtgui>
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        QString wholeText;
        QDir dir;
     
        dir.cd("C:/PPPGenererFichiers/fichiers");
        dir.setSorting(QDir::Time);
        dir.setFilter(QDir::NoDotAndDotDot | QDir::Files);
        QFileInfoList list(dir.entryInfoList());
        QFileInfo fileInfo;
        for (int i = 0; i < list.size(); ++i) {
            fileInfo.setFile(dir,list.at(i).fileName());
            QFile fichier(list.at(i).fileName());
            wholeText+="<br/>"+QString::number(i)+" : "+list.at(i).fileName()+" modifié le  "+list.at(i).lastModified().toString();
         }
     
        QWidget* affichage = new QWidget;
        QTextEdit Texte(wholeText,affichage);
        Texte.setGeometry(20,20,800,400);
        affichage->show();
        return app.exec();
    }

    Voici le contenu du widget :

    0 : 09._2nd_Intersection.mp3 modifié le lun. 12. nov. 17:49:25 2012
    1 : 11._Figurines.mp3 modifié le jeu. 13. sept. 09:39:28 2012
    2 : 10. The_Ghost_Of_Some_Old_Sin.mp3 modifié le jeu. 13. sept. 09:39:22 2012
    3 : 12._Orchards_(Radio_Edit).mp3 modifié le jeu. 13. sept. 09:39:23 2012
    4 : 01._This_Road_Leads_To_The_Village_Of_Informers.mp3 modifié le jeu. 13. sept. 09:39:21 2012
    5 : 07._The_Silence_Of_The_Sea.mp3 modifié le jeu. 13. sept. 09:39:20 2012
    6 : 03._1st_Intersection.mp3 modifié le jeu. 13. sept. 09:39:18 2012
    7 : 04._Line_Drawings.mp3 modifié le jeu. 13. sept. 09:39:17 2012
    8 : 08._The_Cell.mp3 modifié le jeu. 13. sept. 09:39:18 2012
    9 : 02._Frozen_River.mp3 modifié le jeu. 13. sept. 09:39:15 2012
    10 : 05._Laughter_Track.mp3 modifié le jeu. 13. sept. 09:39:15 2012
    11 : 06._Orchards.mp3 modifié le jeu. 13. sept. 09:39:12 2012
    Question : peut on m'expliquer pourquoi les dates ne sont pas correctement triées?
    Terminées les prises de tête pour programmer en php. On procède comme ça : http://cavril.developpez.com/php/ (débutants pressés voulant éviter d'approfondir vers la POO)

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    tes fichiers sont bien classés par heure, il n'y a pas un datetime ou autre comme critere de tri?

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Effectivement, tes fichiers sont bel et bien classé par date et heure de modification, mais... par ordre descendant, alors qu'ils auraient du l'être dans l'ordre ascendant.

    Si j'en crois cette discussion sur qt-project, il s'agit bel et bien d'un bug qui a été constaté très récemment, mais qui devrait être corrigé incessamment
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre très actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 289
    Par défaut
    Effectivement comme le problème avait été signalé il y a un mois et que je suis plus orienté tout-et-tout-de-suite je croyais qu'en fait il avait été résolu et que mon code était cagneux.

    Bon comme il fallait que je publie le programme aujourd'hui j'ai fait du style :

    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
        QDir dir("C:/Progscopie/Emission");
        dir.setFilter(QDir::NoDotAndDotDot | QDir::Files);
        QStringList filters("*.mp3");
        dir.setNameFilters(filters);
        QFileInfoList list(dir.entryInfoList());
        QStringList fileStringList;
        QWidget* affichage = new QWidget;
        QTextEdit Texte(affichage);
        Texte.setGeometry(20,20,800,400);
        QMap<int,QString> mapFichiers;
     
        for (int i = 0; i < list.size(); i++)
            fileStringList << list.at(i).fileName().remove(".mp3");
     
        for (int i = 0; i < fileStringList.size(); ++i)
            mapFichiers.insert(list.at(i).lastModified().msecsTo(QDateTime(QDate(1,1,1),QTime(1,1)))*-1,fileStringList.at(i));
     
        foreach(QString value, mapFichiers)
            Texte.append(value);
    En attendant la réparation. Merci pour votre spontanéité.
    Terminées les prises de tête pour programmer en php. On procède comme ça : http://cavril.developpez.com/php/ (débutants pressés voulant éviter d'approfondir vers la POO)

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

Discussions similaires

  1. Un "time" pour la mémoire?
    Par dodo285 dans le forum Linux
    Réponses: 3
    Dernier message: 09/07/2013, 08h48
  2. Code pour histogramme défaillant
    Par LudOL56 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/12/2011, 21h01
  3. Changer Evaluation time pour subreport
    Par jadey dans le forum iReport
    Réponses: 5
    Dernier message: 04/11/2009, 11h20
  4. equivalent de time() pour la memoire
    Par laconi87 dans le forum Bibliothèque standard
    Réponses: 9
    Dernier message: 11/12/2007, 17h06
  5. Décompte ou timing pour ralentir un script
    Par Bluelane dans le forum Langage
    Réponses: 5
    Dernier message: 03/04/2006, 15h52

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