"Martin Kruse" <martin.kruse@get2net.dk> skrev i en meddelelse
news:a027tj$1hl6$1@news.cybercity.dk...
> Når jeg kigger i en mappe efter nogen andre mapper og vil have skrevet dem
> op på en liste bliver de skrevet op i omvendt dato-rækkefølge. Altså den
> ældste mappe forrest.
Der findes ingen sorteringsfunktion når vi snakker FileSystemObject, du
bliver nødt til at indlæse mapperne i et array og sortere dem der.
Kig lidt på dette eksempel, jeg har brugt Dennis Knappes bubblesort script
fra activedeveloper.dk:
<%
'Vi satser på at vi ikke har over hundrede mapper, og husk lige at ReDim er
slem
Dim arrFiler(1,100)
'Filsystemobjektet + et par tæller variabler defineres
Dim objFS, folder, fil, objFC, filcount, i
'Vores tællervariabel sættes lig Nul
filcount = 0
'Vi henter nu alle filer i en folder
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
Set folder =objFS.GetFolder("G:\Inetpub\wwwroot\")
Set objFC = folder.Files
'Vi løber igennem filerne en for en for at putte navnet
'samt datoen ind i et todimmensionelt array
For Each fil in objFC
arrFiler(0,filcount) = fil.Name
arrFiler(1,filcount) = fil.DateLastModified
filcount = filcount + 1
Next
Set objFS = Nothing
Set folder = Nothing
Set objFC = Nothing
'Her kalder vi Bubblesort funktionen på datoen i vores Array.
Call BubbleSort(arrFiler, 1, 1)
' Vi udskriver nu filerne fra det sorterede array
For i = 0 To UBound(arrFiler,2)
If arrFiler(0,i) <> "" Then
Response.Write(arrFiler(0,i) & " (" &
Formatdatetime(arrFiler(1,i),1) & ")<br>")
End If
Next
Private Sub BubbleSort(byRef arrTemp, byVal sDim, byVal sSort)
Dim n
Dim y
Dim t
Dim tmpTop
Dim tmpVal
Dim iBookMark
Dim BubbleElement
BubbleElement = False
For n = 0 To UBound(arrTemp,2)
tmpTop = arrTemp(sDim,n)
iBookmark = n
For y = n To UBound(arrTemp,2)
If sSort = 0 Then
If (tmpTop > arrTemp(sDim,y)) Then
BubbleElement = True
End If
Else
If (tmpTop < arrTemp(sDim,y)) Then
BubbleElement = True
End If
End If
If BubbleElement Then
tmpTop = arrTemp(sDim,y)
iBookmark = y
BubbleElement = False
End If
Next
For t = 0 to UBound(arrTemp, 1)
tmpVal = arrTemp(t, n)
arrTemp(t, n) = arrTemp(t, iBookmark)
arrTemp(t, iBookmark) = tmpVal
Next
Next
End Sub
%>
--
Jakob Andersen
FAQ for webdesign gruppen på
<
http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar
"