<%
Sub DateSorter(byRef arrArray)
For i = 0 To UBound(arrArray) - 1
smallest_value = arrArray (i)
rememberkey = arrArray (i)
rememberval = arrArray (i)
swap_pos = i
For x = i + 1 to UBound(arrArray)
If arrArray (x) < smallest_value Then
swap_pos = x
smallest_value = arrArray (x)
smallest_key = arrArray (x)
End If
Next
If swap_pos <> i Then
arrArray (swap_pos) = rememberkey
arrArray (swap_pos) = rememberval
arrArray (i) = smallest_key
arrArray (i) = smallest_value
End If
Response.Write(arrArray(i) & "<BR>")
Next
End Sub
%>
<%
Set Myfso = Server.CreateObject("Scripting.FileSystemObject")
varDateFile = Server.MapPath("EV/events.txt")
Set DateFile = Myfso.OpenTextFile(varDateFile,1)
%>
Sorted List:<p>
<%
Do until DateFile.AtEndOfStream
data = DateFile.ReadAll
Loop
temp = split((data),"_")
Call DateSorter(temp)
End If
%>
Any ideas?
You call it with:
Call QuickSort(varArray, LBound(varArray), UBound(varArray))
Sub QuickSort(avarValues, iavarValuesFirst, iavarValuesLast)
Dim iavarValuesPivot
Dim iavarValuesSwapFirst
Dim iavarValuesSwapLast
Dim varSwap
If iavarValuesLast - iavarValuesFirst = 1 Then
If avarValues(iavarValuesFirst) > avarValues(iavarValuesLast) Then
varSwap = avarValues(iavarValuesFirst)
avarValues(iavarValuesFirst) = avarValues(iavarValuesLast)
avarValues(iavarValuesLast) = varSwap
End If
End If
iavarValuesPivot = avarValues((iavarValuesFirst + iavarValuesLast) \ 2)
avarValues((iavarValuesFirst + iavarValuesLast) \ 2) = avarValues(iavarValuesFirst)
avarValues(iavarValuesFirst) = iavarValuesPivot
iavarValuesSwapFirst = iavarValuesFirst + 1
iavarValuesSwapLast = iavarValuesLast
Do
Do While iavarValuesSwapFirst < iavarValuesSwapLast _
And avarValues(iavarValuesSwapFirst) <= iavarValuesPivot
iavarValuesSwapFirst = iavarValuesSwapFirst + 1
Loop
Do While avarValues(iavarValuesSwapLast) > iavarValuesPivot
iavarValuesSwapLast = iavarValuesSwapLast - 1
Loop
If iavarValuesSwapFirst < iavarValuesSwapLast Then
varSwap = avarValues(iavarValuesSwapFirst)
avarValues(iavarValuesSwapFirst) = avarValues(iavarValuesSwapLast)
avarValues(iavarValuesSwapLast) = varSwap
End If
Loop While iavarValuesSwapFirst < iavarValuesSwapLast
avarValues(iavarValuesFirst) = avarValues(iavarValuesSwapLast)
avarValues(iavarValuesSwapLast) = iavarValuesPivot
If iavarValuesFirst < (iavarValuesSwapLast - 1) Then
Call QuickSort(avarValues, iavarValuesFirst, iavarValuesSwapLast - 1)
End If
If iavarValuesSwapLast + 1 < iavarValuesLast Then
Call QuickSort(avarValues, iavarValuesSwapLast + 1, iavarValuesLast)
End If
End Sub