killy38
Messages postés6Date d'inscriptionmercredi 23 juin 2004StatutMembreDernière intervention11 mai 2005
-
23 juin 2004 à 15:44
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
23 juin 2004 à 19:30
Bonjour à tous,
Je suis en train de développer un programme, mais je coince sur un truc tout bête : j'ai besoin de traiter tous les fichiers .dat d'un répertoire donné, mais je dois le faire du plus ancien au plus récent... et c'est là que le bat blesse, d'autant plus que je n'ai pas l'aide VB, ce qui est plutot génant !!
Merci d'avance pour vos contributions à l'avancée de mon problème !
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 23 juin 2004 à 16:46
Salut
Voilà l'aide de vb6 pour FileDateTime :
FileDateTime, fonction
Renvoie une valeur de type Variant (Date) indiquant la date et l'heure de création ou de dernière modification d'un fichier.
Syntaxe
FileDateTime(pathname)
L'argument pathname est uneexpression de chaîne définissant un nom de fichier. L'argument pathname peut préciser le répertoire ou le dossier et le lecteur.
FileDateTime, fonction, exemple
Cet exemple utilise la fonction FileDateTime pour déterminer la date et l'heure de création ou de dernière modification d'un fichier. Le format de date et d'heure affiché est fonction des paramètres régionaux de votre système.
Dim MyStamp
' Suppose que la dernière modification du fichier FICHTEST a
' eu lieu le 12 février 1993 à 4:35:47. Suppose que les
' paramètres régionaux correspondent à Français (standard).
MyStamp = FileDateTime("FICHTEST") ' Renvoie "12/2/93 4:35:47".
cs_chti_mi
Messages postés2Date d'inscriptionmercredi 23 juin 2004StatutMembreDernière intervention23 juin 2004 23 juin 2004 à 17:03
2nde solutions
Voici une fonction issue de l'aide
affiche tous les fichiers d'un répertoire
Sub AfficheListeFichier(specdossier)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(specdossier)
Set fc = f.Files
For Each f1 in fc
s = s & f1.name
s = s & vbCrLf
Next
MsgBox s
End Sub
Voici le code pour afficher la dernière date affichée :
Sub AfficheInfoAccesFichier(specfichier)
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(specfichier)
s = UCase(specfichier) & vbCrLf
s = s & "Créé le : " & f.DateCreated & vbCrLf
s = s & "Dernier accès le : " & f.DateLastAccessed & vbCrLf
s = s & "Dernière modification le : " & f.DateLastModified
MsgBox s, 0, "Infos d'accès au fichier"
End Sub
killy38
Messages postés6Date d'inscriptionmercredi 23 juin 2004StatutMembreDernière intervention11 mai 2005 23 juin 2004 à 18:22
ce que j'ai fait :
Ma strucuture :
' déclaration de la structure pour les fichiers .dat : nom + date
Public Type FichierDat
NomFic As String
DateFic As Date
End Type
donc j'ai récupéré, pour chaque fichier, sa date et son nom.
Une fois que j'ai une liste cette liste, j'aimerai pouvoir la trier sur les dates, pour traiter mes fichiers du plus ancien au plus récent.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 23 juin 2004 à 19:30
Salut,
Le grosss pb ds le tri des dates dans une liste c que ces dates sont traduites en texte quand on les affiche ds une liste quelconque. Donc le format habituel français jj/mm/aaaa ne convient pas pour un tri (le format anglais mm/dd/yyyy c moins idiot sauf si c sur +sieurs années).
Pour etre sûr, j'adopte le format "yyyy/mm/dd" et là c cool.
Un ex avec une listview :
' Ds Projets/Composants : Microsoft Windows Common Controls 6.0 (SP6)
Dim ItemX As ListItem
Dim i As Integer
Dim Liste_Fichiers()
ListView1.GridLines = True ' pour afficher les séparations entre lignes et colonnes
ListView1.FullRowSelect = True ' pour la sélection de la ligne entière
ListView1.View = lvwReport ' affichage détails
ListView1.LabelEdit = lvwManual ' pour empecher les modifs ds la 1ere colonne
' Nom des colonnes
ListView1.ColumnHeaders.Add , , "Nom", ListView1.Width / 2
ListView1.ColumnHeaders.Add , , "", 0 ' pour le tri sur la date
ListView1.ColumnHeaders.Add , , "Date", ListView1.Width / 2
' Remplissage de la listview
For i = LBound(Liste_Fichiers) To UBound(Liste_Fichiers)
Set ItemX = ListView1.ListItems.Add(, "K" & i, Liste_Fichiers(i, 0))
ItemX.SubItems(1) = Format(Liste_Fichiers(i, 1), "yyyy/mm/dd")
ItemX.SubItems(2) = Liste_Fichiers(i, 1)
Next
ListView1.SortKey = 1
ListView1.Sorted = True
Pour récupérer le nom du fichier sélectionné :
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
msgbox = Item
End Sub