c't 5/02
Arguments, welche die Dateinamen enthält, direkt an die QuickSort-Prozedur zu übergeben. Sie müssen daher zunächst das Variant-Array vntArgumente() anlegen, per For-Next-Schleife sämtliche Elemente der Arguments-Auflistung hineinkopieren und es per Call-Anweisung an QuickSort weiterreichen. Die zweite For-Next-Schleife zeigt die sortierten Elemente per MsgBox-Dialogfeld an. (Ralf Nebelo/(se)Der gute, alte QuickSort-Algorithmus als Windows-Skript
Dim intI
Dim vntArgumente()
ReDim vntArgumente(Wscript.Arguments.Count - 1)
For intI = 0 to Wscript.Arguments.Count - 1
vntArgumente(intI) = LCase(Wscript.Arguments(intI))
Next
Call QuickSort(vntArgumente, LBound_ (vntArgumente), UBound(vntArgumente))
For intI = LBound(vntArgumente) To UBound_ (vntArgumente)
MsgBox vntArgumente(intI)
Next
Private Sub QuickSort(vntArray, intVon, intBis)
Dim i, j
Dim vntTestWert
Dim intMitte
Dim vntTemp
If intVon < intBis Then
intMitte = (intVon + intBis) \ 2
vntTestWert = vntArray(intMitte)
i = intVon
j = intBis
Do
Do While vntArray(i) < vntTestWert
i = i + 1
Loop
Do While vntArray(j) > vntTestWert
j = j - 1
Loop
If i <= j Then
vntTemp = vntArray(j)
vntArray(j) = vntArray(i)
vntArray(i) = vntTemp
i = i + 1
j = j - 1
End If
Loop Until i > j
If j <= intMitte Then
Call QuickSort(vntArray, intVon, j)
Call QuickSort(vntArray, i, intBis)
Else
Call QuickSort(vntArray, i, intBis)
Call QuickSort(vntArray, intVon, j)
End If
End If
End Sub
Version zum Drucken | Per E-Mail versenden | Heft bestellen
Permalink: http://heise.de/-311968
Das aktuelle Heft ist jetzt im Handel erhältlich.
Ältere Artikel können Sie über unser Zeitschriften-Archiv bestellen.