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!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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))
Partager