<%@ Language=VBScript %>
<%
Option Explicit
Response.Expires = 0
On Error Resume Next
'*****************************************************************
'Variablendeklarationen
Dim arrvar(3,4)
Dim intsortcolumn
'*****************************************************************
'Variableninitialisierung
arrvar(0,0) = 3
arrvar(1,0) = 2
arrvar(2,0) = 1
arrvar(0,1) = "A"
arrvar(1,1) = "D"
arrvar(2,1) = "C"
arrvar(0,2) = DateValue("1.7.61")
arrvar(1,2) = DateValue("20.6.59")
arrvar(2,2) = DateValue("1.1.98")
arrvar(0,3) = "**"
arrvar(1,3) = "***"
arrvar(2,3) = "*"
'*****************************************************************
'Lokale Prozeduren und Funktionen
'Parameter dieser Prozedur
' - arrvar: ein zweidimensionaler Array, wobei erste Dimension
' den Datensätzen und zweite Dimension den Spalten entspricht
' - intsortcolumn: Spalte, nach der sortiert wird (beginnt bei 0!)
Sub procarrbubblesort (ByRef arrvar, ByVal intsortcolumn)
Dim blnallesok
Dim intcounter
Dim intinnercounter
Dim arrhelp
ReDim arrhelp(UBound(arrvar,2))
'Response.Write("UBound: " & UBound(arrvar,1) & "<br />")
'Response.Write("UBound: " & UBound(arrvar,1) & "<br />")
Do
blnallesok = true
'Achtung: UBound liefert bei eindimensionalen Arrays den letzten Index,
'd.h. Anzahl Elemente - 1, bei mehrdimensionalen Arrays dagegen die
'Anzahl Elemente -> deshalb hier UBound - 2!!!
For intcounter = 0 to UBound(arrvar,1) - 2
'Response.Write(intcounter & ". Durchgang<br />" & vbCrLf)
if arrvar(intcounter,intsortcolumn) > arrvar(intcounter+1,intsortcolumn) then
For intinnercounter = 0 to UBound(arrhelp,1) - 1
arrhelp(intinnercounter) = arrvar(intcounter, intinnercounter)
arrvar(intcounter,intinnercounter) = arrvar(intcounter+1,intinnercounter)
arrvar(intcounter+1,intinnercounter) = arrhelp(intinnercounter)
Next
blnallesok = false
end if
Next
Loop While blnallesok = false
End Sub
Sub procshowarrayastable(ByVal arrvar)
Dim intcounter
Dim intinnercounter
Response.Write("<table border=""1"">" & vbCrLf)
For intcounter = 0 to UBound(arrvar,1) - 1
Response.Write(" <tr>" & vbCrLf)
For intinnercounter = 0 to UBound(arrvar,2) - 1
Response.Write(" <td>" & arrvar(intcounter,intinnercounter) & _
"</td>" & vbCrLf)
Next
Response.Write(" </tr>" & vbCrLf)
Next
Response.Write("</table>" & vbCrLf)
End Sub
'*****************************************************************
'Anfang Code
'*****************************************************************
'Anfang <html>
%>
<!--#include virtual="asppages/silvi/_include/preheader.inc" -->
<html>
<head>
<title>ASP nützliche Routinen: Zweidimensionalen Array sortieren mit Bubblesort
</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<!--#include virtual="asppages/silvi/_include/header.inc" -->
</head>
<body>
<%
'*****************************************************************
'Code innerhalb der HTML-Seite
Response.Write("<p><b>Zweidimensionalen Array sortieren mit Bubblesort</b></p>")
Response.Write("<i>Vor Sortierung:</i><br />")
call procshowarrayastable(arrvar)
intsortcolumn = 0 'beginnt bei 0
call procarrbubblesort(arrvar, intsortcolumn)
Response.Write(" <br /><i>Sortiert nach Spalte " & _
intsortcolumn + 1 & ":</i><br />")
call procshowarrayastable(arrvar)
intsortcolumn = 2
call procarrbubblesort(arrvar, intsortcolumn)
Response.Write(" <br /><i>Sortiert nach Spalte " & _
intsortcolumn + 1 & ":</i><br />")
call procshowarrayastable(arrvar)
%>
<!--#include virtual="asppages/silvi/_include/inchtmlnachspann.asp" -->
</body>
</html>
Demo: beispiele/070bubblesorttwodimensionalarray.asp
Letzter Update:
26.12.2021 16:48
Zurück zur
Liste mit ASP-Beispielen auf
www.ecotronics.ch