begin process at 2012 02 11 09:49:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Fichier & Disque

 > 

Filtrage multiple à l'aide de FindFirst


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Filtrage multiple à l'aide de FindFirst

vendredi 30 mars 2007 à 16:12:10 | Filtrage multiple à l'aide de FindFirst

John Dogget

Bonjour à tous.

Je souhaiterais lister tous les fichiers images (bmp, jpg, ico etc) contenue dans un dossier.
Pour ça j'utilise FindFirst comme ceci :

var
    IdentifiantFichier:TSearchRec;
...
if FindFirst(Dossier+'*.*',faAnyfile,IdentifiantFichier)=0 then
    ...

Ca marche très bien mais pour une seule extention de fichier.
En fait, je voudrais remplacer le '*.*' de mon code par un filtre qui me permette de voir tous les fichiers images en une fois, l'interet etant de ne lancer un FindFirst qu'une fois.

Est'ce possible ?
Comment faire ?

Merci à vous
vendredi 30 mars 2007 à 17:03:37 | Re : Filtrage multiple à l'aide de FindFirst

WhiteHippo

Membre Club
Bonsoir,
Deux possibilités, mais certainement pas celle que tu attendais  car on ne peut pas spécifier un masque multiple dans les paramètres.
 1 - Faire N boucles avec une extension à la fois (pas terrible, je sais )
 2 - Faire une seule boucle, il faut utiliser un "*.*", comme tu as fais, et implémenter ton propre test :

   if ( ExtractFileExt(SearchRec.Name) = Uppercase('bmp')  ) then
   begin
     // ...
   end else
   if ( ExtractFileExt(SearchRec.Name) = Uppercase('jpg')  ) then
   begin
     // ...
   end ;
  

Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein
vendredi 30 mars 2007 à 17:06:36 | Re : Filtrage multiple à l'aide de FindFirst

Loulibier

Membre Club
Réponse acceptée !

bonjour John Dogget,

Si j'ai bien compris ton priblème, j'utiliserais ta façon de faire.
Je chercherais tous les fichiers du répertoire et les fichiers au moment de les ajouter à ta liste.

exemple :

var
    IdentifiantFichier:TSearchRec;
    slListFiles : TStringList;
...

slListFiles := TStringList.Create;

if FindFirst(Dossier + '*.*', faAnyfile, IdentifiantFichier)=0 then
begin
  repeat
      if (IdentifiantFichier.Name <> '.') and (IdentifiantFichier.Name <> '..') and ((IdentifiantFichier.Attr and faDirectory) = 0) then
      begin
         if SameText(ExtractFileExt(IdentifiantFichier.Name), '.jpg') or
            SameText(ExtractFileExt(IdentifiantFichier.Name), '.bmp') or
            SameText(ExtractFileExt(IdentifiantFichier.Name), '.ico') then
          slListFiles.Add(IdentifiantFichier.Name);
      end;

      Application.ProcessMessages;

    until (FindNext(IdentifiantFichier) <> 0);
end;

slListFiles.Free;



Bonne Prog,  Olivier
PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.

vendredi 30 mars 2007 à 17:45:58 | Re : Filtrage multiple à l'aide de FindFirst

John Dogget

Deux bonnes réponses.
Donc c'est bien ce que je pensais, la capacité de filtrage de Findfirst est pas terrible
Il faut filtrer après coup ...

Donc merci à vous deux


Cette discussion est classée dans : aide, fichiers, filtrage, multiple, findfirst


Répondre à ce message

Sujets en rapport avec ce message

Fichiers d'aide Delphi 7 Entreprise [ par Manthis ] Salut,j'aurais voulu savoir si qqn aurait la bonté d'ame de m'envoyer les fichiers d'aide de nla version 7 de delphi car je possède la version anglais progressbar et upload aide urgente merci [ par ELECTRORESiSTiK ] Salut,J'ai fait un petit programme qui envoi des fichiers se trouvant dans une listbox, je voudrais voir la progression de l'upload de chaque fichier Trier par date lors d'un findfirst/findnext [ par padsou ] bonjour à tous ! je cherche des fichiers dans un répertoire donné et je rempli un tstringlist avec les noms de fichiers. Je souhaiterai trier ces fic Aide sur fichier .dbf [ par biks9 ] salut à tout le mondej'ai un problème avec les fichiers .dbf, pour sauvegarder une base de données sous l'extension .dbf alors j'ai programmé une boit Ordre des fichiers retourner par FindFirst (TSearchRec) [ par BernieNoel68 ] Bonjour a tous!Je souhaiterais savoir si on peut determiner dans quel ordre la fonction FindFirst/FindNext trouve et cherche les fichiers d'un réperto Associer les fichiers d'aide à Delphi 7 [ par MezianeMohamedAli ] Salut,Puisque je suis nouveau parmis vous, je poser ma question en calculant le temps de réponse pour prévoir la prochaine fois combien ça va me deman Aide fichiers delphi [ par felina1 ] Bonjour à tous,Je cumul formation vb6 et delphi. VB6, je m'en sors à peu près, mais delphi....sans commentaires!Connaissez vous un bon site avec des Aide pour un éditeur de Texte ! dans un richedit. [ par nirousse ] Je désire ouvrir des fichiers texte avec mon logiciel.Mais, je ne sais pas comment je dois faire pour ouvrir l'un après l'autre les fichiers.Une boucl Recherche d'un logiciel servant à creer des fichiers *.CHM [ par MichelJeanF ] J'ai Delphi 2007 édition Professionnelle, y a t-il un soft intégré pour creer des fichiers d'aide *.CHM ? Ou le trouver et comment l'installer ? J'ai


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales