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++Builder Discussion :

Lister un répertoire dans une fenêtre


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Lister un répertoire dans une fenêtre
    Bonjour, je suis entrain de fabriquer une petite interface sous Borland qui me permetra de selectionner ma musique en fonction de son type, Rock,pop etc....
    interface simple, bouton a gauche correspondant au style musicale et a droite une image jpeg lorsque rien n' a été selectionné.
    J'ai essayé de trouver une solution de maniere à avoir lorsque je selectionne un style de musique une fenetre windows avec les mp3 correspondants(dossier deja preparé ) en gros je souhaiterai ouvrir d:\tartempion\rock par exemple en lieu et place du jpeg initial...je sais comment ouvrir une fenetre windows , je ne veux pas avoir une seconde fenetre, je veux que tout s'affiche dans mon executable.

    Par la suite si la fenetre se comporte comme un explorer, un simple clik sur le mp3, vlc se lance et mission réussi

    Une bonne âme qui pourrai me conseiller ?

  2. #2
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Regardes ce code
    Il permet de lister tous les fichiers d'un répertoire.
    Mais tu peux l'adapter pour lister les répertoires.
    + + +

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    merci pour ce lien, en fait le modo a changé mon intitulé car posté dans faq c++
    donc je cherche à ouvrir d:\tartempion\rock par exemple dans mon application dans un espace reservé pour l'accueillir... je ne cherche pas a lister à proprement dit, j'ai créé different dossier et je veux les ouvrir en fonctions du style choisit.....

    j'ai essayé de rapatriller les contenu du repertoire et d'afficher les dossierd ans une Liste BOx mais je bute
    Une bonne ame en vain pour m'aider ? Merci

  4. #4
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Donc si je résume, tu as la structure de dossier suivante :

    Disque dur
    |-Dossier de base (Tartempion)
    |-Rock
    |-Pop
    |-etc

    Tu démarres donc de ton dossier de base, tu choisis le style et tu veux lister le contenu du dossier.

    Si ce n'est pas ça, ré-expliques moi
    Si oui, donnes le code que tu as fait pour voir où cela foire.
    + + +

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    c'est bien celà, mais je triture du code mais je ne vois pas ou je saisit l'endroit du repertoire, en gros je ne c po trop comment m'y prendre

  6. #6
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    ok.
    Si on part de la fonction que je t'ai donné, il suffit de faire 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
     
    //dossier de base de tes musiques
    AnsiString Chemin = "C:\\tartempion\\";
    Chemin += ListBox_Style->Text;
    Chemin += "\\";
     
    //liste des extensions à gérer
    TStringList* Ext = new TStringList;
    Ext->Add(".mp3");
     
    //ListFichiers est un TStringList
    Search(Chemin,Ext,ListFichiers);//récupération des fichiers
     
    delete Ext;
    Cela devrait suffit pour te lister tous les fichiers de ton répertoire.
    + + +

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    merci de ton aide ! désolé de n'avoir repondu plus tot, j'étais parti manger. je vais essayer d'inscrire ce code dans le programme lorsque je v rentrer chez moi apres le taf. je te tiens au courant. à+

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    j'ai toujours un souci bakaneko :

    voici le code :


    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    void TForm1::Search(AnsiString FilePath, TStringList * Extensions, TStrings * ListeFichiers)
    {
      TSearchRec Infos_fichier;
      if (!FindFirst(FilePath+"*.*", faAnyFile, Infos_fichier))
     
      do
      {
        for (int i = 0 ; i < Extensions->Count ; i++)  //en mode pas a pas lorsque je tombe dans cette boucle  probleme
        {
          if (ExtractFileExt(Infos_fichier.Name).LowerCase() == Extensions->Strings[i].LowerCase())
          {
            ListeFichiers->Add(ExpandFileName(Infos_fichier.Name));
          }
        }
      }
      while(!FindNext(Infos_fichier));
     
      FindClose(Infos_fichier);
    }
     
     
    //------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     
    //Selection du reperetoire Rock
     
    AnsiString Chemin = "D:\\Musique MP3\\Rock\\";
    Chemin += ListBox_Style->Text;   // probleme avec ListBox_Style->Text :-(
    Chemin += "\\";
     
    //liste des extensions mp3 à gérer
     
    TStringList* Ext = new TStringList;
    Ext->Add(".mp3");
     
    //ListFichiers est un TStringList
    //récupération des fichiers
    Search(Chemin,Ext,ListeFichiers);  // probleme avec cette fonction undefined....
     
     
    delete Ext;
    }
    je suis de moins en moins doué on dirait , pourtant lorsque j'ai fait mes études j'avais developpez un soft en c++ borland5 pour le stage de fin d'annee)

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Pense à utiliser les balises code (le # dans l'éditeur) lorsque tu postes du code. Cela permet de l'afficher plus proprement et avec une coloration syntaxique.

    Merci ;-)
    Neilos

  10. #10
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Si je corrige ton code, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //Selection du reperetoire du style
    AnsiString Chemin = "D:\\Musique MP3\\";
    Chemin += ListBox_Style->Items->Strings[ListBox_Style->ItemIndex];
    Chemin += "\\";
     
    //liste des extensions mp3 à gérer
    TStringList* Ext = new TStringList;
    Ext->Add(".mp3");
     
    //récupération des fichiers
    Search(Chemin,Ext,ListeFichiers->Items);
     
    delete Ext;
    Avec ListBox_Style qui contient les différents styles de ton dossier et ListeFichiers qui est un TListBox qui va contenir tes noms de fichiers.
    Pour l'erreur problème avec ListBox_Style->Text :-(, il faut savoir que les TListBox ne possèdent pas de propriété Text. Il faut donc aller chercher le texte correspondant à l'indice sélectionné (d'où mon code).
    Pour éviter l'erreur problème avec cette fonction undefined...., il faut que tu penses à déclarer ta fonction Search comme membre de ta classe TForm1.
    + + +

  11. #11
    Candidat au Club
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    oki je vois, j'ai compris le pb.c'est normal que ça ne fonctionnait pas, tu me l'a bien expliqué. merci

Discussions similaires

  1. Lister les fichiers d'un répertoire dans une feuille Excel
    Par AlainTech dans le forum Contribuez
    Réponses: 3
    Dernier message: 10/03/2016, 14h14
  2. Réponses: 3
    Dernier message: 10/03/2008, 22h04
  3. [Tableaux] Lister tous les répertoires dans une liste
    Par cdevl32 dans le forum Langage
    Réponses: 10
    Dernier message: 01/03/2008, 18h20

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