Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Filtrage multiple à l'aide de FindFirst [ Système / Fichier & Disque ] (John Dogget)

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é 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 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 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 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 Les 10 derniers fichiers ouverts ! [ par nirousse ] Toujours pour mon éditeur de texte, je voudrais faire un sous-menu ou je mettrais les 10 derniers fichiers ouverts.Est-ce que quelqu'un aurait une ast Demande d'aide [ par apz ] dans une machine il y a des bases de donnees *.dbf.j'ai devellopé une appli. qui utilise des bases de donnees *.db.alors je veux recuperer les donnees


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,655 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.