[Allegro] Sortierung von UTF8-Dateien

Thomas Berger ThB at Gymel.com
Di Jan 8 21:38:26 CET 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Krempe,

| ich bin auf der Suche nach einer Methode, eine alg-Datei mit UTF8-Daten
| über Bildung eines Sortierkopfes zu sortieren. Üblicherweise werden im
| Sortierkopf Grundbuchstaben bzw. "ue" für ü etc gebildet. Leider finde
| ich keine Umcodierungstabelle für Unicode. Über den q-Befehl kann ich
| nur einzelne Zeichen umsetzen, die globale Ersetzung gilt jeweils für
| den kompletten Satz, nicht nur den Sortierkopf.
|
| Gibt es dafür schon eine Lösung?

zwei Loesungen:

Unicode kennt diese Probleme als "Collation", Loesungsansatz sind
folgende zwei Beobachtungen:

- - Byteweise sortierung von UTF-8-codierten Daten entspricht der
~  Unicode-Sortierung

- - Eine der in Unicode definierten Normalformen, naemlich die
~  Komplette Dekomposition aller kombinierten Zeichen, ist fuer
~  Sortierungen besonders angebracht.

In den Unicode-Dokumenten wird allerdings auch darauf hingewiesen,
dass "korrekte" Sortierungen hochgradig kulturspezifisch sind.
Die deutsche Praxis (fuer Namensverzeichnisse) die Umlaute wie
"ue" etc. zu sortieren, ist dabei noch ziemlich harmlos im
Vergleich zu Spanisch ("ll" als eigener Buchstabe) oder Daenisch
("aa" sortiert wie "a°" weit hinter "z") oder gar Franzoesisch
(Akzente am *Ende* eines Wortes sind haben staerkeren Einfluss auf
die Sortierung als jene am Wortanfang!).

Echte Sortierung benutzt daher die Unicode-Normalform nur als
Ausgangsbasis fuer eine mindestens dreischichtige Sortierung,
die die Sortierwerte der Grundbuchstaben einbezieht, dazu bzw.
dahinter dann gewisse Klasseneigenschaften der Diakritika
(die sind alle in der Unicode-Datenbank abgelegt und muessen
also nur in der Software als Tabellen verfuegbar sein).


Die zweite Loesung beruecksichtigt eher die verkrueppelten Unicode-
Faehigkeiten von allegro: Die P bzw. Q-Befehle (das Handbuch 10.2.4.7
verweist auf die reine Online-Dokumentation <
http://www.allegro-c.de/unicode/ >, hier sind diese Befehle allerdings
bei "Methode 1" abgehandelt, obwohl sie zu "Methode 2" gehoeren, das
ist nicht wirklich erhellend. Die Hilfedatei "codier.rtf" ist m.E.
der beste Start, ausserdem muss man iu.apt heranziehen (dort gibt es
einen Ps-Befehl, der wohl eine Speicherallocation vornimmt, aber
nirgendwo dokumentiert ist).

Diese iu.apt ist vermutlich genau die Datei, die Sie fuer Ihr
Problem benoetigen: Denn eine Indextaugliche Sortierung durch
Abbildung auf Grundbuchstabenkombinationen kommt den Anforderungen
bei sortierten Listen ja sehr nahe.

viele Gruesse
Thomas Berger

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHg99ChKFJT0F1FsoRAqUfAJ9ObL6rizWe6Mv7VMMfcNxNrPImWACcDdgG
8VAJg/1uCcLDTXv8hNF13Go=
=LvST
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro