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))