25. marts 2004 - 19:35Der er
14 kommentarer og 1 løsning
Bubblesort på dato fejler
Jeg har leget med nedenstående lappeløsning for at forsøge at sortere på filer i en mappe. Det går fint med sortering på .Name, men ikke på .DateLastModified, der er ingen orden i datoerne. Kan nogen smide nogle vise sten her ?
<html> <head> <title>Filsystem test for dato/navn sortering</title> </head> <body> <%
strPhysicalPath = Server.MapPath("testbilleder") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strPhysicalPath) Set objFolderContents = objFolder.Files For Each objFileItem in objFolderContents fileList = fileList & objFileItem.DateLastModified & "," Next Set objFSO = Nothing
arrFileList = split(fileList,",")
Sub BubbleSort(arrBubbleSort) changed = true do while changed changed = false for i = 1 to ubound(arrBubbleSort) if arrBubbleSort(i-1) > arrBubbleSort(i) then tmp = arrBubbleSort(i-1) arrBubbleSort(i-1) = arrBubbleSort(i) arrBubbleSort(i) = tmp changed = true end if next loop End Sub
BubbleSort arrFileList
for each element in arrFileList response.write element & "<br>" next
Sub BubbleSort(arrBubbleSort) changed = true do while changed changed = false for i = 1 to ubound(arrBubbleSort) if CDate(arrBubbleSort(i-1)) > CDate(arrBubbleSort(i)) then tmp = arrBubbleSort(i-1) arrBubbleSort(i-1) = arrBubbleSort(i) arrBubbleSort(i) = tmp changed = true end if next loop End Sub
Tak eagleeye, det var jo bare slutkommaet der drillede. Nu mangler jeg bare at lave min sub til en funktion, der kan håndtere navn og dato. Måske du har et råd her til sidst om det. Ellers tak for nu...
Ja problemet er at CDate(filnavn) vil give en fejl. det man kan gøre er at bruge isDate og tjekke om det er en dato og så lade det afgøre om man skal tjekke de to med cdate omkring:
if isDate(arrBubbleSort(i-1)) and isDate(arrBubbleSort(i)) then if CDate(arrBubbleSort(i-1)) > CDate(arrBubbleSort(i)) then else if arrBubbleSort(i-1) > arrBubbleSort(i) then end if
min kommentar: 26/03-2004 20:01:33 Det kode du har vist 26/03-2004 19:59:41 er i princippet det samme som det jeg forslog 25/03-2004 20:06:59. Forskellen er at du sætter , efter datoen og fjerner det sidste komma. Det jeg har vist sætte komme før datoen og fjerner det første komma. Så de to stykker kode skulle give det samme :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.