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 : 26631
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è...

{Delphi} MODIFIER LES DATES DE CRÉATION, DE MODIFICATION ET DE DERNIER ACCÈS D'UN FICHIER
La Source de grandvizir actuellement présente sur le site (http://www.delphifr.com/codes/CORRUPTEUR-...

{Visual Basic, VB6, VB.NET, VB 2005} GESTION DE LISTES (FUSION, COMPARAISON, TRI...)
Je manipule pour le boulot des fichiers. Par centaines, voire plus. J'ai souvent des listes de fich...

{Visual Basic, VB6, VB.NET, VB 2005} LISTE DE FICHIERS SUR UN DISQUE EN VB6
Ce programme permet de lister une arborescence de répertoires et de fichiers. Le résultat est mis ...

{SQL} TROUVER LES PROCHAINS ANNIVERSAIRES
Je poste cette source car impossible d'en trouver une qui marche correctement. Cette source perme...

{JAVA / J2EE} TRI TABLEAU D'ENTIER PAR DICHOTOMIE
Cette classe lit des entiers initialisé dans un tableau à 1 dimension, et les place dans un autre ta...

{Visual Basic, VB6, VB.NET, VB 2005} CLASSE LISTE DE FICHIER RÉCURSIVE
Je poste ma version de la construction d'une liste de fichier à partir d'un répertoire, les fichiers...

{Visual Basic, VB6, VB.NET, VB 2005} GESTION DES STOCKS
Du plus simple d'utilisation et de language, ce programme vous permet de lister et de gérer votre St...

{C / C++ / C++.NET} GESTION DES PERSONNEL D'UNE ENTRPRISE EN UTILISANT LES LISTES CHAINEES ET LES FICHIERS
ce un simple code ecrit en c,permet de stoker des information consernant les employe d'une entrepris...