Wie kann ich ein X-beliebiges Array sortieren, unabhängig von seiner Größe, und von alphabetischen oder numerischen Werten.
In einem Recordset habe ich die Möglichkeit, mit einem bestimmten SQL-String die Daten bereits in sortierter Reihenfolge abzufragen! Bei Arrays ist das etwas komplizierter. Es gibt keine Funktion, die das Sortieren von Array´s erleichtern würde. Deshalb muß man sich eine solche Funktion selber schreiben.
Hinweis: dieser Code funktioniert nur mit eindimensionalen Arrays!
Hier der Code für die Prozedur: ArraySortieren
arraysort.asp
<% Sub ArraySortieren(arrSort) For i = 0 To UBound(arrSort) - 1 '--- Ersten Wert auslesen und in Variablen schreiben kleinsterWert = arrSort (i) Wertnummer = arrSort (i) Werthalten = arrSort (i) neuePos = i For x = i + 1 to UBound(arrSort) '--- Durchlaufen um kleinsten Wert zu finden If arrSort (x) < kleinsterWert Then '--- Das ist jetzt der kleinste Wert, die Position wird gemerkt neuePos = x kleinsterWert = arrSort (x) End If Next If neuePos <> i Then '--- Sortierung: Werte im Array austauschen arrSort (neuePos) = Wertnummer arrSort (neuePos) = Werthalten arrSort (i) = kleinsterWert End If Next End Sub %> |
Diese Funktion kann ich in eine extra ASP-Seite schreiben und Sie dann über ein Include-File verwenden.
arraytesten.asp
<%@ Language=VBScript %> <!--#include file="./arraysort.asp"--> <HTML> <HEAD> </HEAD> <BODY> <% dim arrMyArray(3) arrMyArray(0) = "Bernhard" arrMyArray(1) = "Franz" arrMyArray(2) = "Sepp" arrMyArray(3) = "Josef" call ArraySortieren (arrMyArray) for i = 0 to UBound(arrMyArray) Response.Write arrMyArray(i) & "<br>" next %> </BODY> </HTML> |
Unten der Source-Code zum Download