Array - BubbleSort
19.07.2013 13:18:42
Seb
ich habe hier ein Problem, welches ich mir einfach nicht erklären kann.
Folgendes:
Ich hole mir Daten aus eines Access-DB,
den String zerlege ich in einer bestimmten Art,
so dass ich nen Array habe, welches nur Zahlen enthält.
Mit CInt schreibe ich diese dann in ein neues Array,
welches ich mir mit dem bubblesort-alg. sortieren lassen möchte.
Allerdings gibt er mir die Zahlen wie folgt:
1
1
10
11
12
15
2
3
4
5
also als wenn CInt nicht funktionieren würde, aber der Arraytyp ist: Variant/Integer
hier mal der code:
arrTest = rs.GetRows
For Each strWert In arrTest
strArray = Split(strWert, ".")
i = UBound(strArray)
no0 = strArray(i - 2)
no1 = strArray(i - 1)
no2 = strArray(i)
If IsNumeric(no0) = True Then
new_nr = no0
ElseIf IsNumeric(no1) = True Then
new_nr = no1
Else
new_nr = no2
End If
new_nr = CInt(new_nr) 'String -> Integer change
If IsEmpty(sortArray) Then
sortArray = Array(new_nr)
Else
ReDim Preserve sortArray(UBound(sortArray) + 1)
sortArray(UBound(sortArray)) = new_nr
End If
Next strWert
'Bubblesort
For z = UBound(sortArray) - 1 To LBound(sortArray) Step -1
For y = LBound(sortArray) To z
If LCase(sortArray(y)) > LCase(sortArray(y + 1)) Then
intWert = sortArray(y)
sortArray(y) = sortArray(y + 1)
sortArray(y + 1) = intWert
End If
Next y
Next z