Les Snippets

Connexion

Trier une liste de fichiers par date

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 08/04/2006 23:03:03 et initié par Willi [Liste]
Date de mise à jour : 12/12/2006 23:04:47
Vue : 39686
Catégorie(s) : Date & Heure, Fichier / Disque
Langages dispo pour ce code :
- VB 2005
- PHP 5
- VB 2005, VB.NET 1.x
- C# 2.x
- VBScript
- VB6
- Windev
- C# 2.x
- Python
- Voir tous les langages pour ce code snippet



Langage : VB6
Date ajout : 11/05/2006
Posté par Gobillot [Liste]

 Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
 
 
 Private Function ListeFichier(strPath As String, Optional SortOrder As Integer = 0) As String()
     Dim Fich  As String
     Dim Name  As String
     Dim T()   As String
     Dim D()   As Date
     Dim dt    As Date
     Dim X()   As Long
     Dim P     As Long
     Dim G     As Long
     Dim M     As Long
     Dim nb    As Long
 
     If Right$(strPath, 1) <> "\" Then strPath = strPath & "\"
     Fich = Dir(strPath & "*.*", vbHidden Or vbSystem)
 
     Do Until Fich = ""
        Name = strPath & Fich
        dt = FileDateTime(Name)
        
        P = 1: G = nb: M = 0
 
        If nb > 0 Then
           While P < G
              M = (P + G) \ 2
              If dt > D(X(M)) Then P = M + 1 Else G = M
              Wend
           If P > M Then
              If dt > D(X(P)) Then P = P + 1
              End If
           Do While P <= nb
              If dt < D(X(P)) Then Exit Do
              If dt > D(X(P)) Then Exit Do
              P = P + 1
              Loop
           End If
 
        nb = nb + 1
        ReDim Preserve T(nb), D(nb), X(nb)
        If P < nb Then
           CopyMemory X(P + 1), X(P), (nb - P) * 4
           End If
        X(P) = nb
        T(nb) = Name
        D(nb) = dt
 
        Fich = Dir()
        Loop
 
     ReDim temp(nb) As String
     If SortOrder Then
        G = nb: M = -1
        Else
        G = 1: M = 1
        End If
     For P = 1 To nb
         temp(P) = T(X(G))
         G = G + M
         Next
     ListeFichier = temp
     Erase T, temp, D, X
 End Function
 
 

Snippets en rapport avec : Fichier, Date, Tri, Liste, Trier



Codes sources en rapport avec : Fichier, Date, Tri, Liste, Trier

{Visual Basic, VB6, VB.NET, VB 2005} [VBSCRIPT] LISTE DES FICHIERS, D'UN RÉPERTOIRE, TRIÉS PAR DATE DE MODIFICATION (DU + RÉCENT AU + ANCIEN)
Ce script (VBS) a pour but d'afficher, dans une MsgBox, la liste des fichiers d'un répertoire, trié...

{PHP} TRI PAR TYPE DE FICHIER / EXTENSION
Fonction pour trier des noms de fichiers par type (et alphabétiquement au sein d'un type). Concrè...

{PHP} DIFFÉRENCE ENTRE DEUX DATE EN JOURS (LISTE RÉCUPÉRÉE DANS UN TABLEAU)
Salut J'ai cherché une fonction permettant de récupérer une liste de date entre deux dates donnée...

{Visual Basic, VB6, VB.NET, VB 2005} SCANLIST V4
Encore plus rapide que la version précédente et avec l'option html et le lien qui suit le fichier (e...

{Javascript / DHTML} TABLEAU GÉNÉRÉ ET TRIÉ PAR LE CLIENT
Le but ici est d'illustrer plusieurs techniques de développement javascript. La première concerne ...

{C / C++ / C++.NET} CHANGEUR DATE FICHIER (WIN32)
On choisit la date et on applique sur un ficihier ou tous les fichiers d'un dossier. J'avais fait...

{Visual Basic, VB6, VB.NET, VB 2005} TRI DES ITEMS DE LISTVIEW (DATE, NUMÉRIQUE OU PERSO)
Une petite source qui montre comment trier efficacement (et facilement) les colonnes de vos ListVi...

{Delphi} STATUTILS - LES STATISTIQUES
Bonsoir, voici une librairie de gestion basique de séries statistiques, StatUtils. Evidemment elle...

{C / C++ / C++.NET} CHANGER LA DATE DE CRÉATION/MODIFICATION DE FICHIERS AVEC UN ÉQUIVALENT DU "TOUCH" UNIX/MS-DOS
Salut à tous ! Je poste ici le code source d'un petit utilitaire qui me permet de changer la date...

{C / C++ / C++.NET} LISTER LES FICHIERS D'UN REPERTOIRE + FILTRES
Programmé sous Linux. Compatible windows. Liste les fichiers d'un répertoire come indiqué dans le...