Argumentet iPos bestämmer vilken av positionerna i den 2-dimensionella arrayen som det ska sorteras på.
Sorterar du på rätt position???
visa lite mer kod, kod där du anropar denna funktion.
cya,
PatrikB
6 svar · 217 visningar · startad av nill
Jag hittade en sorteringsalgoritm till min Array här på webforum. Den funkar ganska bra men har ett stort problem med det.
Den sorterar så här:
Staeger
Trituz
Vladrimir
XitR
abriz\_
alkaida
drillen
error
fet johan
alltså börjar om igen. Koden ser ut såhär:
Private Function Sort2D(ByVal ArrayToSort, ByVal iPos)
Dim intMaxIndex
Dim I, X
Dim varTemp
Dim intPositions, intPos
intMaxIndex = UBound(ArrayToSort,2)
intPositions = UBound(ArrayToSort,1)
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
Sort2D = ArrayToSort
End Function
Argumentet iPos bestämmer vilken av positionerna i den 2-dimensionella arrayen som det ska sorteras på.
Sorterar du på rätt position???
visa lite mer kod, kod där du anropar denna funktion.
cya,
PatrikB
Här är själva Array'n:
Arr(0, q) = RecSet("ID")
Arr(1, q) = RecSet("nick")
Arr(2, q) = RecSet("titel")
Arr(3, q) = RecSet("gang")
och så sorteringsanropet
Arr = Sort2D(Arr, 1)
har nu kikat på den igen ..... det är ett LCase som fattas i sorteringen:
Private Function Sort2D(ByVal ArrayToSort, ByVal iPos)
Dim intMaxIndex
Dim I, X
Dim varTemp
Dim intPositions, intPos
intMaxIndex = UBound(ArrayToSort,2)
intPositions = UBound(ArrayToSort,1)
For I = 0 To intMaxIndex
For X = (I + 1) To intMaxIndex
If [b]LCase[/b](ArrayToSort(iPos, I)) > [b]LCase[/b](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
Sort2D = ArrayToSort
End Function
nu bör det funka
cya,
PatrikB