cobaltone
Messages postés116Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention25 avril 2012
-
17 juin 2004 à 00:31
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 2010
-
17 juin 2004 à 14:00
salut a tous,
je me casse les dents sur une fonction mais peut etre aurez vous la soluce ?!
voici ma source
Function CmpFlx()
chemin1 = "c:\stats"
chemin2 = "c:\supervision"
Set fs = CreateObject("Scripting.FileSystemObject")
Set répertoire1 = fs.GetFolder(chemin1)
Set répertoire2 = fs.GetFolder(chemin2)
Set lesFichiers1 = répertoire1.Files
Set lesFichiers2 = répertoire2.Files
For Each unFichier In lesFichiers1
a = CStr(Date)
a1 = Left(a, 2) 'jour
a2 = Mid(a, 4, 2) 'mois
'si le fichier est d'aujourdhui et ressemble a ".flx"
If Mid(unFichier, 10, 4) = a2 + a1 And unFichier Like "flx" Then
'si un fichier est plus petit qu'un autre suprimer le plus petit
End If
Next unFichier
End Function
le 1er probleme est de syntaxe, quande je dit
If Mid(unFichier, 10, 4) = a2 + a1 And unFichier Like "flx"
cette syntaxe ne fonctionne pas ! et je ne sait pas pourquoi
alors if unFichier Like "flx" et if mid... fonctionnent séparement!
mon 2eme probleme :
pas moyen de trouver comment dire
"si un fichier est plus petit qu'un autre suprimer le plus petit"
me voila dans une impasse et apres de nombreuse recherche infructueuse tant dans msdn que dans des essais
nombreux de syntaxe difference rien n'y fait !
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 20102 17 juin 2004 à 13:59
Je réponds ici car j'avais besoin de tout revoir ...
Ton code devraiit ressembler à ceci.
Function CmpFlx()
Dim lTailleMini As Long ' Taille du plus petit fichier
Dim sFichierMini As String ' Nom du plus petit fichier
Dim lNbFichierTest As Long ' Nombre de fichiers testés
chemin1 = "c:\stats"
chemin2 = "c:\supervision"
Set fs = CreateObject("Scripting.FileSystemObject")
Set répertoire1 = fs.GetFolder(chemin1)
Set répertoire2 = fs.GetFolder(chemin2)
Set lesFichiers1 = répertoire1.Files
Set lesFichiers2 = répertoire2.Files
' on intialise la longueur à -1 pour savoir quand on passera sur le premier fichier
lTailleMini = -1
' Nombre de fichiers testés = 0
lNbFichierTest = 0
' Parcours des fichiers du répertoire
For Each unFichier In lesFichiers1
a = CStr(Date)
a1 = Left(a, 2) 'jour
a2 = Mid(a, 4, 2) 'mois
'si le fichier est d'aujourdhui et ressemble a ".flx"
If Mid(unFichier, 10, 4) = CStr(a2 & a1) And unFichier Like "flx" Then
' On teste un nouveau fichier
lNbFichierTest = lNbFichierTest + 1
' on récupère le nom complet du fichier et sa taille
If lTailleMini = -1 Then
' on est sur le premier, on le charge directement
sFichierMini = unFichier.Drive & unFichier.Path & unFichier.Name
lTailleMini = Len(sFichierMini)
Else
' on a déjà un fichier chargé, on teste
If lTailleMini > Len(unFichier.Drive & unFichier.Path & unFichier.Name) Then
' fichier plus petit
sFichierMini = unFichier.Drive & unFichier.Path & unFichier.Name
lTailleMini = Len(sFichierMini)
End If
End If
End If
Next unFichier
' on doit avoir le fichier le plus petit ici, on ne le supprime qu'à partir du moment où on a trouvé 2 fichiers au moins.
Kill sFichierMini
End Function