begin process at 2010 02 10 07:08:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Système

 > 

Fichier & Disque

 > 

Ordre des fichiers retourner par FindFirst (TSearchRec)


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

Ordre des fichiers retourner par FindFirst (TSearchRec)

mercredi 11 février 2009 à 11:27:14 | Ordre des fichiers retourner par FindFirst (TSearchRec)

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épertoire:

------------------------------------------------------------------------------------------------
var
  searchResult : TSearchRec;

begin
  // Try to find regular files matching Unit1.d* in the current dir
  if FindFirst( srcPath + '*.doc', faAnyFile, searchResult) = 0 then
  begin
    repeat
      ShowMessage('File name = '+searchResult.Name);
    until FindNext(searchResult) <> 0;

    // Must free up resources used by these successful finds
    FindClose(searchResult);
  end;
end;

------------------------------------------------------------------------------------------------

Dans mon cas il faudrait que les fichiers soient trouvés dans l'ordre de création (ou de dernière modification), mais je ne sais pas si cela est fait pas défaut, ou si l'ordre des fichiers retourner par FindFirst/FindNext est totalement aléatoire.

Merci d'avance a ceux qui auront une reponse a proposer.

mercredi 11 février 2009 à 12:01:45 | Re : Ordre des fichiers retourner par FindFirst (TSearchRec)

Caribensila

Membre Club
Réponse acceptée !
Bonjour,

FindFirst/FindNext te renvoie les fichiers triés par ordre alphabétique.
Pour obtenir un autre ordre, c'est à toi de le coder.
Voir un exemple ici.
mercredi 11 février 2009 à 12:04:32 | Re : Ordre des fichiers retourner par FindFirst (TSearchRec)

simonpelloquin

Réponse acceptée !
Salut Bernie,

Essaie ce code (ici, il remplit un composant Listbox (LB) avec la liste triée par ordre de création)
procedure TForm1.Chercher(Sender: TObject);
   procedure AddInList(ASL : TStringList; ARech : TSearchRec);
   begin
        if ARech.Attr <> faDirectory
           then ASL.Add(DateTimeToStr(FileDateToDateTime(ARech.Time)) +'|'+ ARech.Name);
   end;
var
{--------------------------------}
   LSR_Rech    : TSearchRec;
{--------------------------------}
   LSL_Rech    : TStringList;
{--------------------------------}
   i           : Integer;
{--------------------------------}
   LS_LongName : String;
{--------------------------------}
begin
     LSL_Rech := TStringList.Create;
     if FindFirst({Nom du répertoire} +'\*.*', faAnyFile, LSR_Rech) = 0 then begin
        AddInList(LSL_Rech, LSR_Rech);
        while FindNext(LSR_Rech) = 0
              do AddInList(LSL_Rech, LSR_Rech);
     end;
     FindClose(LSR_Rech);
     LSL_Rech.Sort;
     For i := 0 to LSL_Rech.Count - 1 do begin
         LS_LongName := LSL_Rech.Strings[i];
         LB.Items.Add(Copy(LS_LongName, Pos('|', LS_LongName) + 1, Length(LS_LongName)));
     end;
     LSL_Rech.Free;
end;

Désolé Caribensila, je l'avais sous la main...

Simon
mercredi 11 février 2009 à 12:12:07 | Re : Ordre des fichiers retourner par FindFirst (TSearchRec)

BernieNoel68

Merci a tous les deux, c'est la solution que j'avais adopté (trier en utilisant la propriété Time du TSearchRec).

Dans mon cas les noms de fichiers utilise un numéro incrémentale, donc le classement alphabétique correspond a la date de création/modification.

Mon problème est donc résolu, et ma lanterne éclairée!
vendredi 13 février 2009 à 16:05:05 | Re : Ordre des fichiers retourner par FindFirst (TSearchRec)

Caribensila

Membre Club

@Simon

Attention! Je me permets de te signaler que ta fonction renvoie la liste triée par ordre de modification et non pas de création...

vendredi 13 février 2009 à 18:15:20 | Re : Ordre des fichiers retourner par FindFirst (TSearchRec)

simonpelloquin

@Cari
Tu te permets bien...
Désolé, j'avais pas vu ton snippet la dernière fois...
Eh ! mais il n'y est plus ! Je voulais le récupérer pour m'updater.
T'avais la même erreur ?

Simon
vendredi 13 février 2009 à 18:19:15 | Re : Ordre des fichiers retourner par FindFirst (TSearchRec)
lundi 16 février 2009 à 14:36:29 | Re : Ordre des fichiers retourner par FindFirst (TSearchRec)


Cette discussion est classée dans : ordre, fichiers, retourner, findfirst, searchresult


Répondre à ce message

Sujets en rapport avec ce message

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 Filtrage multiple à l'aide de FindFirst [ par 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 :va Findfirst [ par mathieu57100 ] bonjour, Dans un Ttreeview je voudrais charger la liste des répertoires contenus sur mon Bureau, mais seulement les répertoires...procedure TfrmPrinc. Deplacer des fichiers [ par gpwebmaster ] Y'a t-il une fonction pour deplacer toutles fichiers d'un repertoire à un autre, parce qu'avec la fonction MoveFile ou MoveFileEx je ne peux déplcer q Sauvegarder l'ordre d'un tri fait sur une base de donnée .dbf [ par Hawouax ] Bonjour,  Tout ce que je veux faire, c'est sauvegarder l'ordre d'un tri d'une base de donnée.Je m'explique :  J'ai quelques colonnes dont une qui se n Changement dynamique ordre des colonnes dans un DBGrid (DELPHI 7) [ par ahmed21 ] Voilà mon soucis :J'ai plusieures colonnes dans un DBGrid (Delphi 7) et des boutons qui permettent de changer l'ordre d'affichage des colonnes sur un Interaction Windows Explorer/mon Appli [ par MAURICIO ] Salut tout le monde, je voudrais après avoir seleccionné des fichiers/répertoires ds Windows Explorer, ouvrir le popMenu de Windows Explorer et y mont 1 er demarrage [ par burnouze ] bonjour j ai fait un ptit prg qui cré des 2 dossiers puis a l'iterieur des dossiers il cré des .txt et au tout premier demarrage si les fichiers n'e 1 er demarrage [ par burnouze ] bonjour j ai fait un ptit prg qui cré des 2 dossiers puis a l'iterieur des dossiers il cré des .txt et au tout premier demarrage si les fichiers n'e Pb périphérique Wave [ par LeFrettchen ] Bonjour.Je viens de programmer un petit logiciel tout bête pour lire les fichiers de type wav.Je l'ai testé sous win98, il fonctionne impeccable.Par c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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,718 sec (4)

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