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

Delphi Discussion :

Comment lister les fichier d'un dossier et les afficher dans une Combobox ?


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Comment lister les fichier d'un dossier et les afficher dans une Combobox ?
    Bonjour,
    je suis debutant en delphi et
    j'essaye de lister le contenu d'un dossier (les fichier .dot) et de mettre le resultat dans une combobox

    j'ai essaye le code suivant trouve sur un site, mais il ne liste rien, (ou alor je ne l'utilise pas correctement...) :

    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
     
     procedure Dir(FileName: String; Attr: Integer; ListDir: TStrings);
     var 
      SearchRec: TSearchRec;
     begin 
       ListDir.Clear;
       if FindFirst(FileName, Attr, SearchRec) = 0 then begin 
         ListDir.Add(ExtractFilePath(FileName) + SearchRec.Name);
         While FindNext(SearchRec) = 0 do 
           ListDir.Add(ExtractFilePath(FileName) + SearchRec.Name);
         FindClose(SearchRec);
       end;
     end;
     
     
     
     
     
    Procedure TForm1.ListeLeDossierWinSystem;
    var 
      MaListe: TStringList;
    begin 
      MaListe := TStringList.Create;
      Try
        Dir('C:\Windows\system\*.dll', faAnyfile, MaListe); // Liste les DLL du dossier System 
        {* Ici on peut faire ce qu'on veut du contenu de MaListe *}
      Finally
        MaListe.Free;
      end;
    end;
    de plus, je ne sais pas comment je dois declarer la procedure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure Dir(FileName: String; Attr: Integer; ListDir: TStrings); ?
    quelqu'un aurait il des info ?

    merci davance

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    C'est dans la

    http://delphi.developpez.com/faq/?pa...ichierssousrep

    N'oublis pas que Developpez.com propose des cours dans ses pages...
    Tout est !

    Il ya aussi la page sources Delphi, une vraie mine d'Or !!


    [EDIT]
    N'oublis pas d'ajouter le tag lorsque tu estimeras ce sujet terminé.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci Sub0 pour les infos, j'ai ete chercher le code pour lister les document dans une listbox, je l'ai adapte a mon code, cela donne ceci :

    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    Var
        Info   : TSearchRec;
    begin
      ListBox1.Items.Clear;
     
      { Recherche de la première entrée du répertoire }
      IF FindFirst('C:\Documents and Settings\AFO\Mes documents\*.dot',faAnyFile,Info)=0 Then
      Begin
        Repeat
          { Les fichiers sont affichés dans ListBox1 }
           ListBox1.Items.Add(Info.FindData.cFileName)
     
          { Il faut ensuite rechercher l'entrée suivante }
        Until FindNext(Info)<>0;
     
        { Dans le cas ou une entrée au moins est trouvée il faut }
        { appeler FindClose pour libérer les ressources de la recherche }
        FindClose(Info);
      end;
    end;

    mais il ne me retourne rien dans ma listBox et j'ai un warning :

    Symbol FindData is specific to a platform


    quelqu'un saurai d'ou ca vien ?

    mercid avance

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par alexF
    Symbol FindData is specific to a platform
    quelqu'un saurai d'ou ca vien ?
    Citation Envoyé par Aide de Delphi 7
    FindData (Windows uniquement)contient des informations complémentaires comme l'heure de création du fichier,l'heure du dernier accès et les noms de fichier longs et courts.
    C'est la raison du warning.

    Sinon, existe-t-il vraiment des .dot dans ton dossier? Car ton code fonctionne correctement.

    @+ Claudius

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    j'ai 3 fichier .dot dans mon dossier...

    je suis d'accor que ca devrai fonctionner et pourtant...
    si je change le path avec *.*, il ne me retourne rien non plus.
    je suis assez perdu

    merci pour les eventuelle conseils....

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    Fais un test avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if FindFirst('C:\*.*', faAnyFile, Info) = 0 Then [...]
    et vois si ton ListBox est renseigné !

    @+

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Salut !

    Fonctionne très bien, ce code !
    L'ai testé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      IF FindFirst('C:\*.dat',faAnyFile,Info)=0 Then
    car je suis sûr qu'il y a des fichiers .dat là, puisque je les ai y mis !

    Une piste de réflexion : si tu es sous XP, peut-être un problème de droits d'accès sur le dossier ? Ou l'arborescence ?
    À voir...

    Mes 2 cts,
    --
    jp

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    merci pour tt les conseil,
    j avai oublier de definir le bouton sur la methode... (enocre un peu trop debutant... :s)
    ca fonctionne tres bien effectivement

    merci a tout le monde

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

Discussions similaires

  1. Lister les fichiers d'un dossier et les cibler avec un lien hypertexte
    Par drn_008 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/04/2014, 23h55
  2. Réponses: 16
    Dernier message: 30/07/2013, 00h05
  3. Réponses: 5
    Dernier message: 02/05/2009, 19h10
  4. Réponses: 3
    Dernier message: 07/02/2008, 13h34
  5. Comment afficher dans une combobox les driver des imprimante
    Par lassad dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2005, 08h56

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