PoffeMedlem sedan apr. 20022 935 inlägg
Nån som vet nått smart sätt att storera en 2d-array? har testat 4guysfromrolla's men den sorterar bara de två försa posterna i arrayn samt slänger om värderna, alltså så:
arr(1, 1) blir arr(0, 1)
och arr(0, 1) blir arr(1, 1)
Fast som sagt bara på de två första posterna i arrayn.. nån som vet jaf jag gör för fel (har bara kopierat koden rakt av och satt in på min sida) eller nån som har nått annat knep?
PoffeMedlem sedan apr. 20022 935 inlägg
rättelse: den soretrar inte ens, bara slänger om värderna som jag sa
PatrikBMedlem sedan mars 20002 713 inlägg
jepp, det vet jag :e
Testa denna:
<%
Option Explicit
Dim varTemp
Dim N
Dim varArray(2,3)
varArray(0,0) = 1
varArray(1,0) = "Patrik"
varArray(2,0) = "Berggren"
varArray(0,1) = 4
varArray(1,1) = "Anders"
varArray(2,1) = "Andersson"
varArray(0,2) = 2
varArray(1,2) = "Bertil"
varArray(2,2) = "Bertilsson"
varArray(0,3) = 3
varArray(1,3) = "Ove"
varArray(2,3) = "Ovesson"
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Sort 2D-Array Ascending or Descending</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<%
'## -- sortera på efternamn.
'## -- för att sortera på id byt 2:an till positionen för id - 0 - eller
'## -- för förnamn byt till den positionen - 1 --
varTemp = Sort2D(varArray, "desc", 2)
If IsArray(varTemp) Then
For N = 0 TO UBound(varTemp,2)
Response.Write "ID: " & varTemp(0,N) & " - " & varTemp(1,N) & " " & varTemp(2,N) & "<BR>"
Next
End If
%>
</BODY>
</HTML>
<%
Public Function Sort2D(ByVal ArrayToSort, ByVal sSortOrder, ByVal iPos)
Dim intMaxIndex ' As Integer
Dim I, X ' As Integer
Dim varTemp ' As Variant
Dim intPositions, intPos
intMaxIndex = UBound(ArrayToSort,2)
'## -- get total positions in array --
intPositions = UBound(ArrayToSort,1)
Select Case UCase(sSortOrder)
Case "ASC"
'## -- sort ascending --
For I = 0 To intMaxIndex
For X = (I + 1) To intMaxIndex
If ArrayToSort(iPos, I) > ArrayToSort(iPos,X) Then
For intPos = 0 To intPositions
varTemp = ArrayToSort(intPos, I)
ArrayToSort(intPos, I) = ArrayToSort(intPos, X)
ArrayToSort(intPos, X) = varTemp
Next
End If
Next
Next
Case "DESC"
'## -- sort descending --
For I = 0 To intMaxIndex
For X = (I + 1) To intMaxIndex
If ArrayToSort(iPos, I) < ArrayToSort(iPos,X) Then
For intPos = 0 To intPositions
varTemp = ArrayToSort(intPos, I)
ArrayToSort(intPos, I) = ArrayToSort(intPos, X)
ArrayToSort(intPos, X) = varTemp
Next
End If
Next
Next
End Select
'## -- return sorted array --
Sort2D = ArrayToSort
End Function
%>
cya,
PatrikB
PoffeMedlem sedan apr. 20022 935 inlägg
klockrent! tack så jätte mycket!!
PatrikBMedlem sedan mars 20002 713 inlägg