@Nepumuk - mehrdimensionale ArraySortierung in ASP
11.01.2009 14:10:00
Martin
ich bin bereits seit 2001 Mitglied und regelmäßiger Besucher hier im Forum. Allerdings stelle ich heute ausnahmsweise einmal eine "Nicht-Excel"-Frage. Ich beschäftige mich neben Excel VBA auch mit ASP (Active Server Pages), die ebenfalls auf Visual Basic basieren. Auch mit ASP möchte ich gerne ein mehrdimensionales Array mit mehreren Sortkeys sortieren. Ich verwende zwar bereits den QuickSort-Algorithmus und konnte mir auch eine auf-/absteigende Sortierung einbauen, aber leider nur mit einem Sortierschlüssel.
Der Aufruf erfolgt mit :
QuickSort([zu sortierendes Array],[oberster Eintrag erste Dimension],[letzter Eintrag erste Dimension],[zu sortierende Spalte], [Sortierrichtung (>0 aufsteigend, Call QuickSort(MeinArray, 0, UBound(MeinArray,1) - 1, 5, -1)
Hier meine ASP-Array-Sortierung:
'Quicksort
Sub QuickSort (ByRef arrvar, ByVal intl, ByVal intr, ByVal intsortcolumn, ByVal cending)
Dim inti, intj, intpivot, intinnercounter ', vartemp
Dim arrhelp
ReDim arrhelp(UBound(arrvar,2)) 'für jede Spalte 1 Zelle
inti = intl 'erste Zeile
intj = intr 'alle Zeilen
intpivot = arrvar((intl + intr)\2, intsortcolumn)
Do
If cending intpivot
inti = inti + 1
Loop
Do While intpivot > arrvar(intj, intsortcolumn)
intj = intj - 1
Loop
Else
Do While arrvar(inti, intsortcolumn) " & vbCrLf)
For intinnercounter = 0 to UBound(arrhelp)
arrhelp(intinnercounter) = arrvar(intj, intinnercounter)
arrvar(intj,intinnercounter) = arrvar(inti,intinnercounter)
arrvar(inti,intinnercounter) = arrhelp(intinnercounter)
Next
inti = inti + 1
intj = intj - 1
End If
Loop While inti
Mir ist durchaus bewusst, dass diese Frage im falschen Forum steht. Da ich im Web aber keine Lösung gefunden habe und Dir aufgrund der Ähnlichkeit von ASP und MS VBA eine Übersetzung Deiner tollen Excel-Array-Sortierung nach ASP zutraue, wende ich mich mit meinem Problem an Dich.
Viele Grüße
Martin