DevTrain

Autor: Bernhard Elbl

Array´s sortieren

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


Erfasst am: 14.05.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=450
© Copyright 2003 ppedv AG - http://www.ppedv.de