meta data for this page
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
sortieren-von-texten [2013/02/24 15:17] – Externe Bearbeitung 127.0.0.1 | sortieren-von-texten [2020/01/03 11:04] (aktuell) – michael | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Sortieren von Texten ====== | ====== Sortieren von Texten ====== | ||
- | \\ Die zum alphanumerischen Sortieren wohl bekannteste Routine dürfte " | + | |
- | ==== Sortieren (vbs) ==== | + | Die zum alphanumerischen Sortieren wohl bekannteste Routine dürfte " |
+ | |||
+ | {{::sortieren.gif?nolink|}} | ||
+ | |||
+ | ===== Sortieren (vbs) ===== | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
' | ' | ||
' | ' | ||
Zeile 95: | Zeile 101: | ||
End Sub | End Sub | ||
' | ' | ||
+ | </ | ||
- | \\ Wie man am Sortierergebnis des Beispieltextes sehen kann, erfolgt die Sortierung nach ASCII-Werten. Das hat zur Folge, dass erst nach Großbuchstaben, | + | Wie man am Sortierergebnis des Beispieltextes sehen kann, erfolgt die Sortierung nach ASCII-Werten. Das hat zur Folge, dass erst nach Großbuchstaben, |
- | ==== Sortieren+ (vbs) ==== | + | |
+ | Wünschenswert ist natürlich, dass unabhängig von Groß- und Kleinschreibung sortiert wird und die Umlaute Ä, Ö, Ü bzw. ä, ö, ü wie Ae, Oe, Ue bzw. ae, oe, ue behandelt werden. Um letzteres zu erreichen, zumindest jeweils für den Anfangsbuchstaben eines Textes, kann man als Vorbereitung zum Sortieren die Umlaute bei den Anfangsbuchstaben entsprechend ersetzen und den Originalumlaut zur späteren Rekonstruktion mit einem Trennzeichen dem Text anhängen. Anschließend werden noch alle Texte in Großbuchstaben gewandelt. | ||
+ | |||
+ | Nach dem Sortieren werden in der Rekonstruktionsroutine die Texte mit Trennzeichen gesucht und die Umlaute wieder hergestellt. Dann wird für jeden Text der Ursprungstext gesucht und dieser mit der ursprünglichen Groß- und Kleinschreibung wieder eingesetzt. | ||
+ | |||
+ | ===== Sortieren+ (vbs) ===== | ||
+ | <code VBScript [enable_line_numbers=" | ||
' | ' | ||
' | ' | ||
Zeile 230: | Zeile 242: | ||
End Sub | End Sub | ||
' | ' | ||
+ | </ | ||
- | Auch Zahlen werden richtig sortiert, wie man ausprobieren kann. Allerdings werden die Zahlen wie Text behandelt. 1,35,2,17 ergibt sortiert 1,17,2,35, wo hingegen bei 01, 35, 02, 17 die gewünschte Reihenfolge 01, 02, 17, 35 angezeigt wird. Bei Zahlen muss also auf immer gleiche Stellenzahl geachtet und vorlaufende Stellen entsprechen mit Nullen aufgefüllt werden.\\ \\ | + | Auch Zahlen werden richtig sortiert, wie man ausprobieren kann. Allerdings werden die Zahlen wie Text behandelt. 1,35,2,17 ergibt sortiert 1,17,2,35, wo hingegen bei 01, 35, 02, 17 die gewünschte Reihenfolge 01, 02, 17, 35 angezeigt wird. Bei Zahlen muss also auf immer gleiche Stellenzahl geachtet und vorlaufende Stellen entsprechen mit Nullen aufgefüllt werden. |
- | ====== Mehrdimensionales Feld sortieren ====== | + | |
+ | ===== Mehrdimensionales Feld sortieren ===== | ||
+ | |||
+ | <code VBScript [enable_line_numbers=" | ||
Sub QuickSortMultiDim(vSort, | Sub QuickSortMultiDim(vSort, | ||
' sortiert ein zweidimensionales Feld nach einem anzugebenden Index (Spalte) | ' sortiert ein zweidimensionales Feld nach einem anzugebenden Index (Spalte) | ||
Zeile 273: | Zeile 288: | ||
If (i < lngEnd) Then QuickSortMultiDim vSort, index, i, lngEnd | If (i < lngEnd) Then QuickSortMultiDim vSort, index, i, lngEnd | ||
End Sub | End Sub | ||
- | \\ \\ \\ Sortieren+ (vbs) | + | </ |