Sortierreihenfolge beeinflussen
Gerhard
- sonstiges
Hallo,
wenn ich Dateien in einem Verzeichnis sortiere, so ist die Sortierreihenfolge abweichend von der eines sortierten Inhaltsverzeichnisses in LibreOffice.
Zum Beispiel in Word:
L'eau vive
La ballade des gens heureux
Im Dateiverzeichnis
La ballade des gens heureux
L'eau vive
Kann ich an einer der beiden Stellen die Sortierart anpassen?
Überlege, warum Deine Frage ein gutes Beispiel für eine schlecht gestellte Frage ist.
Überlege, welche Informationen Du den potentiell Wissenden gibst – und welche diese benötigen.
Beachte dabei, dass diese weder hinter Dir sitzen noch auf sonstige Weise Deinen Bildschirm sehen. Mithin keine Anhaltspunkte haben, was Du GENAU womit getan hast.
Ich „mach mich jetzt auf die Landstraße“ ...
Andere verstehen offensichtlich mein Problem! By the way: Du fällst hier immer wieder auf mit Aussagen, die nicht zur Lösung beitragen.
Andere verstehen offensichtlich mein Problem!
Nein.
Lieber Gerhard,
wir haben im Deutschen ohnehin zweierlei Reihenfolgen für Sortierungen. Welche darf es denn nun sein? DIN 5007 Variante 1 („Lexikon“), oder DIN 5007 Variante 2 („Telefonbuch“)?
Je simpler ein Sortieralgorithmus arbeitet, desto mehr orientiert er sich an der Hausnummer, die das jeweilige Zeichen in der Codierung hat. Bei Buchstaben des englischen Alphabets (A-Z) ist das ja einfach, da hier die Zahlen 65 bis 90 zu vergleichen sind. Spannender wird es bei den Umlauten (ÄÖÜ) und dem Esszett (ß), welche im Vergleich zu den anderen Buchstaben deutlich höhere Zahlenwerte haben. Das führt Dazu, dass bei einfachen Implementierungen die Wurst vor den Wölfen einsortiert wird:
Die oben angesprochenen Varianten der DIN 5007 müssen nun entscheiden, ob sie vor dem Sortieren die Umlaute dadurch ersetzen, dass die beiden Punkte entfernt werden (Ä -> A, Ö -> O usw. entspricht Variante 1), oder dass sie als Ligatur betrachtet werden (Ä = AE, Ö = OE usw. entspricht Variante 2). Ersteres findest Du in Word.
Aber schon Apostroph-Zeichen (wie Dein L'eau vive) sind dann ein Problem: Welches Zeichen genau wurde denn verwendet, und soll das bei der Sortierung eine Rolle spielen?
Raffiniertere Algorithmen ignorieren diese Zeichen komplett und deuten sie nur als Wort-Trenner und sortieren nur die Wörter an sich. Dadurch entsteht „L eau vive“, was mit einem einzelnen L beginnt und deswegen vor „La ballade des gens heureux“ einsortiert wird, da L vor La kommt. Aber das kann der Dateimanager offensichtlich nicht und deutet den Zahlenwert hinter dem Apostroph...
Mir ist nicht bekannt, dass Textverarbeitungen hier eine Einstellmöglichkeit bieten, auch nicht, dass die Dateimanager der diversen Betriebssysteme (oder besser desktop environments) das könnten.
Liebe Grüße
Felix Riesterer
Danke Dir lieber Felix!
Hallo Felix,
Mir ist nicht bekannt, dass Textverarbeitungen hier eine Einstellmöglichkeit bieten
die bieten in der Regel wenigstens die Wahl zwischen Lexikon- und Telefonbuchsortierung.
auch nicht, dass die Dateimanager der diversen Betriebssysteme (oder besser desktop environments) das könnten.
Sowohl der Windows-Explorer als auch gängige Linux-Dateimanager richten sich da nach dem globalen Systemeinstellungen. Die sind in Windows nicht gar so ergiebig, unter Linux kann man mit den locale-Einstellungen (hier speziell LC_COLLATE) das Sortierverhalten sehr stark beeinflussen.
Einen schönen Tag noch
Martin
@@Felix Riesterer
Die oben angesprochenen Varianten der DIN 5007 müssen nun entscheiden, ob sie vor dem Sortieren die Umlaute dadurch ersetzen, dass die beiden Punkte entfernt werden (Ä -> A, Ö -> O usw. entspricht Variante 1)
Nein, die Punkte werden nicht entfernt. Wenn dem so wäre, würden ja Büchse und Buchse nicht sortiert werden, d.h. je nach Ausgangsreihenfolge könnte Büchse auch vor Buchse stehen. Bei der deutschen Wörterbuchsortierung muss aber Buchse vor Büchse stehen, d.h. u und ü müssen bei der Sortierung immer noch unterschieden werden.
oder dass sie als Ligatur betrachtet werden (Ä = AE, Ö = OE usw. entspricht Variante 2).
Nein, nicht als Ligatur, sondern als einzelne Buchstaben.
Kwakoni Yiquan
Hallo Gunnar,
Nein, die Punkte werden nicht entfernt.
Werden sie auch nicht. Aber zunächst einmal ignoriert:
console.log("Buchse".localeCompare("Büchse"));
// 1
console.log("Büchse".localeCompare("Buchse"));
// -1
Die localeCompare-Funktion delegiert – so möglich – ihren Job an Intl.Collator und der verwendet per Default sensitivity:"variant"
für den Vergleich. D.h. zuerst wird ein base-Vergleich gemacht (case-insensitive, accent-insensitive). Meldet der "unterschiedlich", ist das das Ergebnis von localCompare. Deshalb folgt "bude" IMMER hinter "büchse", egal wie groß oder klein man die Buchstaben schreibt.
Wenn man aus der Urzeit an Codepoint-basierende Vergleiche gewöhnt ist, dann ist das erstmal merkwürdig.
Vergleicht man "büchse" und "Büchse", so ist der base-Vergleich 0, der case-Vergleich ist bei mir -1 - niemand legt den caseFirst-Schalter fest, es könnte also implementierungsabhängig sein. Der accent-Vergleich ist wieder 0 (case-insensitive) und variant ist -1.
Das ist alles recht komplex…
Rolf
Hallo,
kennst du schon https://wiki.selfhtml.org/wiki/JavaScript/Objekte/String/localeCompare?
Gruß
Jürgen
Hallo Jürgen,
wenn Du herausfindest, wie man das in Word, Libreoffice oder dem Dateimanager zum Einsatz bringt…
Rolf
Lieber JürgenB,
kennst du schon https://wiki.selfhtml.org/wiki/JavaScript/Objekte/String/localeCompare?
diese Seite habe ich etwas überarbeitet, da eine kleine sachliche Unrichtigkeit enthalten war. Auch habe ich die Beispielwörter etwas ergänzt, damit man den Unterschied besser sehen kann.
Liebe Grüße
Felix Riesterer
@@Felix Riesterer
kennst du schon https://wiki.selfhtml.org/wiki/JavaScript/Objekte/String/localeCompare?
diese Seite habe ich etwas überarbeitet
Das gewisse Etwas reicht bei der Seite nicht.
Auch habe ich die Beispielwörter etwas ergänzt, damit man den Unterschied besser sehen kann.
Ich hoffe, die Ubahn stammt nicht von dir‽ Was soll das sein? Eine falsch geschriebene U-Bahn?
Bei Afghanistan ist ein Buchstabendreher (das kommt nicht von gähnen) und groß wird entgegen seiner Bedeutung klein geschrieben.
Ich erwarte, dass beim Click auf den Button die Liste umsortiert wird. Deshalb bleibt der Blick auch dort. Aber nichts passiert. Dass die Begriffe sortiert darunter erscheinen, sieht man mit etwas Glück vielleicht beim dritten Mal – wenn man denn so viel Geduld aufbringt, es dreimal zu versuchen. Vermutlich versuchen die meisten es nur einmal. Seite kaputt – und tschüss!
Die Beschriftung „Normale Sortierung (gemäß englischem Alphabet)“ ist sehr unglücklich gewählt. (Und da habe ich mich sehr gewählt ausgedrückt.) Normale Sortierung ist für deutsche Wörter die deutsche Wörterbuchsortierung, also die zweite.
„ÄäÖöÜüß → AaOoUus“ ist falsch, anderes Posting.
Kwakoni Yiquan
Hallo Gunnar,
das ist alles schon relativ alt.
Ich habe Ufer/Über/Ubahn durch Oval/Örtlichkeit/Ortler ersetzt. Gleiche Wirklung, aber die Ubahn ist weg.
Allerdings steht da ECMA5 in der Kompatibilitätsliste, was falsch ist. ECMA3 kannte diese Methode bereits.
Und was fehlt: Browser, die Intl.Collator unterstützen, sollen localeCompare auf die compare-Methode des Collators abbilden. Ältere Browser bekommen nur diese Vorgabe:
The result is intended to order strings in the sort order specified by the system default locale
Ab ECMAScript 2015 sind zwei reserved
Parameter hinzugekommen, die als locale und options an den Intl.Collator Konstruktor zu übergeben sind, wenn die Implementierung ECMA-402 (Intl) unterstützt.
An dem Artikel ist noch einiges zu tun habe ich jetzt kräftig Hand angelegt.
Rolf
Lieber Gunnar,
danke für Dein Feedback.
Ich hoffe, die Ubahn stammt nicht von dir‽ Was soll das sein? Eine falsch geschriebene U-Bahn?
Stand schon da, war mir gut genug, um es stehen zu lassen. Kann man schrecklich finden, was ich auch nachvollziehen kann.
Bei Afghanistan ist ein Buchstabendreher (das kommt nicht von gähnen)
Wieder ein Fall von „war schon spät und musste fertig werden“.
und groß wird entgegen seiner Bedeutung klein geschrieben.
Wie gut, dass es ein Wiki ist... ;-P
Ich erwarte, dass beim Click auf den Button die Liste umsortiert wird. Deshalb bleibt der Blick auch dort.
Das hat mich auch gestört. Mittlerweile denke ich, dass ich zwei (oder nach Rolfs Vorschlag mit dem Collator auch drei?) Buttons brauche, die die Liste entsprechend sortieren.
Die Beschriftung „Normale Sortierung (gemäß englischem Alphabet)“ ist sehr unglücklich gewählt. (Und da habe ich mich sehr gewählt ausgedrückt.)
Du darfst auch gleich eine konkrete Verbesserung eintragen. Wie sollte denn Deiner Meinung nach der Worlaut sein?
Normale Sortierung ist für deutsche Wörter die deutsche Wörterbuchsortierung, also die zweite.
Also DIN 5007 Variante 1. Der Begriff „normal“ ist an der Stelle Mist, mir fiel gestern Abend nur kein besserer ein. Lieber „generisch“? Oder „einfach“?
„ÄäÖöÜüß → AaOoUus“ ist falsch, anderes Posting.
Aber genau so funktioniert die Wörterbuchsortierung! Oder liest Du die Erklärung zur Variante 1 auf Wikipedia anders?
Liebe Grüße
Felix Riesterer
Hallo Gerhard,
Konsens ist: man kann nicht.
Aber die Frage ist: welches Problem willst Du eigentlich lösen? Möglicherweise gibt's einen anderen Weg, wenn man man von der Detailaufgabe "Sortierung in Word vs Dateimanager vs Libreoffice" einen Schritt zurücktritt?
Rolf