Fonction de tri sur tableau
Bonjour,
Je suis débutant en VBScript et je suis sur un projet pour lequel celui-ce semble pourtant bien indiqué. Il s'agit de trouver, dans un premier temps, le dossier le plus récent contenu dans un répertoire, puis en faire quelques trucs.
Je fais donc comme suit: je mets la liste des noms de dossiers avec leur ancienneté dans un tableau (avec un format "ancienneté | nom_dossier | heure_acces"), puis je trie ce tableau pour pourvoir ensuite accéder au plus récent, plus ancient, etc. J'ai pris une fonction de tri à bulles que je vois u peu partout sur le net (je sais que ce n'est pas optimal, mais comme le tableau ne sera pas grand, ça devrait aller).
Problème: j'ai une erreur à la deuxième ligne de la fonction qui me dit qu'il y a un type mismatch sur l'appel de UBound, j'ai l'impression qu'il ne reconnait pas l'argument de la fonction comme étant un array. Voilà le code en entier, et si quelqu'un pouvait me dire quelle est la bonne façon d'utiliser les fonctions, comme récupérer leur résultat proprement, etc... Bref, à l'aide! :D
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Dim fso, folder, files, tableau(), folderpath, temp2, outputfile
i = 0
j = 0
k = 0
dateNow = Now
folderpath = "C:\Program Files"
filepath = "C:\Users\Mikhail\Desktop\output.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderpath)
If fso.FileExists(filepath) Then
fso.DeleteFile(filepath)
End If
Set outputfile = fso.CreateTextFile(filepath, ForAppending)
For each truc in folder.SubFolders
ReDim Preserve tableau(k)
temp1 = truc.DateLastAccessed
diff = DateDiff("n", temp1, dateNow)
tableau(k) = diff & " | " & truc.Name & " | " & temp1
'MsgBox(tableau(k))
k = k + 1
Next
sizeTab = UBound(tableau)
For i = 0 to sizeTab
outputfile.WriteLine(tableau(i))
Next
outputfile.WriteLine("================================================================================")
Function BubbleSort(tabtosort)
For i = UBound(tabtosort) - 1 To 0 Step -1
For j = 0 to i
If tabtosort(j) > tabtosort(j+1) = 1 Then
temp2 = tabtosort(j+1)
tabtosort(j+1) = tabtosort(j)
tabtosort(j) = temp2
End If
Next
Next
BubbleSort = tabtosort
End Function
BubbleSort(tableau)
For i = 0 to sizeTab
outputfile.WriteLine(BubbleSort(i))
Next
MsgBox("Last accessed foler: " & BubbleSort(0)) |