Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ colltbl(1M) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

memory(3C)

setlocale(3C)

strcoll(3C)

string(3C)

strxfrm(3C)

environ(5)

colltbl(1M)                                                     colltbl(1M)

NAME
     colltbl - Sortierdatenbasis erzeugen

SYNTAX
     colltbl [file|-]

BESCHREIBUNG
     Die Eingabe für das Kommando colltbl muß eine Spezifikationsdatei
     (file) sein, die die Sortierfolge für eine bestimmte Sprache angibt.
     Außerdem erzeugt diese Datei eine Datenbasis, die von strxfrm(3C) und
     strcoll(3C) gelesen werden kann. strxfrm(3C) wandelt sein zweites
     Argument um und schreibt das Ergebnis in das erste Argument. Die umge-
     wandelte Zeichenkette läßt sich mit anderen transformierten Zeichen-
     ketten unter Verwendung von strcmp(3C), strncmp(3C) oder memcmp(3C)
     richtig sortieren. strcoll(3C) wandelt seine Argumente um und führt
     einen Vergleich durch.

     Wird keine Eingabedatei angegeben, so wird aus der Standardeingabe,
     stdin, gelesen.

     Die erzeugte Ausgabedatei enthält die Datenbasis mit Angaben zur Sor-
     tierfolge, und zwar in einer Form, daß sie von Systemkommandos und
     -routinen gelesen werden können. Der Name dieser Ausgabedatei ist der
     Wert, den Sie dem Schlüsselwort codeset zuordnen, das aus der Datei
     file eingelesen wird. Sie können diese Datei erst dann benutzen, wenn
     sie unter dem Namen LCCOLLATE in das Dateiverzeichnis
     /usr/lib/locale/locale installiert wurde, und zwar entweder vom
     Systemverwalter oder einem Element der Gruppe bin. locale entspricht
     dem Sprachbereich, dessen Sortierfolge in der Datei file beschrieben
     ist. Benutzer (user), Gruppe (group) und andere (other) müssen Lesebe-
     rechtigung für diese Datei haben. Andere Zugriffsrechte sollten nicht
     vergeben werden. Damit die Daten zur Sortierfolge in dieser Datei ver-
     wendet werden können, muß die Umgebungsvariable LCCOLLATE entspre-
     chend definiert sein [siehe environ(5) oder setlocale(3C)].

     Das Kommando colltbl unterstützt Sprachen, deren Sortierfolge sich mit
     den folgenden Aussagen vollständig beschreiben läßt:

     -  Einordnen von Einzelzeichen innerhalb eines Codesatzes. Im Schwedi-
        schen wird beispielsweise der Buchstabe V zusammen mit W, d. h.
        nach U und vor X einsortiert. (V und W werden bei der alphabeti-
        schen Reihenfolge als identisch angesehen.)

     -  Einordnen von "Doppelbuchstaben" in die Sortierfolge. In Spanisch
        werden beispielsweise ch bzw. ll jeweils nach c bzw. l eingeordnet.

     -  Einordnen eines Einzelzeichens, als ob dieses aus zwei Zeichen
        bestünde. Im Deutschen wird beispielsweise das "scharfe s", ß, als
        ss sortiert. Dies ist ein Sonderfall der nächsten Aussage.

     -  Ersetzen einer Zeichenkette durch eine andere. Im obigen Beispiel
        wird ß beim Sortieren durch ss ersetzt.



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

colltbl(1M)                                                     colltbl(1M)

     -  Ignorieren bestimmter Zeichen im Codesatz während des Sortierens.
        Wenn beispielsweise der Bindestrich "-" während des Sortierens
        nicht beachtet wird, so werden die Zeichenketten re-locate und
        relocate als gleich angesehen.

     -  Sekundärsortierfolge für die Zeichen. In Fällen, in denen zwei Zei-
        chen in der Sortierfolge zusammen eingeordnet werden, d. h. die-
        selbe "Primärposition" haben, ist manchmal eine Sekundärsortier-
        folge sinnvoll. Diese wird benutzt, wenn zwei Zeichenketten iden-
        tisch sind, abgesehen von den Zeichen mit derselben Primärposition.
        Im Französischen haben beispielsweise die Buchstaben e und è die-
        selbe Primärposition, aber in der Sekundärsortierfolge steht e vor
        è. Somit wird also z. B. das Wort des vor dès eingeordnet.

     Die Spezifikationsdatei besteht aus drei Arten von Anweisungen:

     1. codeset filename

        filename ist der Name der Ausgabedatei, die von colltbl erstellt
        werden soll.

     2. order is orderlist

        orderlist ist eine Liste von Symbolen, die jeweils durch Semikolon
        getrennt werden. Diese Liste definiert die Sortierfolge. Das Son-
        derzeichen ". . ." gibt Symbole, die alphabetisch aufeinanderfol-
        gen, in Kurzfassung an. Zum Beispiel stünde

             order is a;b;c;d; . . . ;x;y;z

        für die Liste der Kleinbuchstaben. Selbstverständlich ließe sich
        dies weiter verkürzen auf: a; . . . ;z.

        Ein Symbol kann bis zu zwei Byte lang sein und auf eine der folgen-
        den Arten dargestellt werden:

        -  als das Symbol selbst (z. B. a für den Kleinbuchstaben a),

        -  als Oktalwert (z. B. \141 oder 0141 für den Buchstaben a) oder

        -  als Hexadezimalwert (z. B. \x61 oder 0x61 für den Buchstaben a).

        Sie können auch eine beliebige Kombination dieser Darstellungstypen
        angeben.

        Mit dem Gegenschrägstrich (\) wird angegeben, daß die Eingabe in
        der nächsten Zeile fortgesetzt wird. Nach dem Gegenschrägstrich
        sind keine weiteren Zeichen erlaubt.






Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

colltbl(1M)                                                     colltbl(1M)

        In Klammern angegebene Zeichen haben dieselbe Primärposition, aber
        eine andere Sekundärposition. Symbole in geschweiften Klammern
        haben dieselbe Primärposition, und es gilt keine Sekundärsortier-
        folge. Das folgende Beispiel erläutert dies.

             order is a;b;c;ch;d;(e;è);f; . . . ;z;\
                      {1; . . . ;9};A; . . . ;Z

        In diesem Beispiel besitzen e und è dieselbe Primärposition und
        unterschiedliche Sekundärpositionen; die Zahlen 1 bis 9 stehen in
        der Primärsortierfolge an gleicher Stelle, für sie gilt keine
        Sekundärsortierfolge. Für die restlichen Symbole gilt nur die Pri-
        märsortierfolge. Beachten Sie, wie Doppelbuchstaben in der Sortier-
        folge angegeben werden können (ch steht nach c und vor d).

        Kommt ein Zeichen in der Anweisung order is nicht vor, so steht es
        außerhalb der Sortierfolge und wird beim Sortieren ignoriert.

     3. substitute string with repl

        Durch die Anweisung substitute wird die Zeichenkette string durch
        die Zeichenkette repl ersetzt. Damit können beispielsweise Regeln
        definiert werden, um abgekürzte (englische) Monatsnamen nach der
        numerischen Reihenfolge zu sortieren:

             substitute "Jan" with "01"
             substitute "Feb" with "02"
             . . .
             substitute "Dec" with "12"

        Eine einfachere Verwendung der Anweisung substitute ist die bereits
        erwähnte Ersetzung eines Zeichens durch zwei Zeichen, z. B. bei ß
        und ss im Deutschen.

     Die Anweisung substitute ist optional. Die Anweisungen order is und
     codeset müssen dagegen in der Spezifikationsdatei erscheinen.

     Alle Zeilen in der Spezifikationsdatei, bei denen in der ersten Spalte
     ein Nummernzeichen (#) auftritt, werden als Kommentare angesehen und
     ignoriert. Leerzeilen werden ebenfalls ignoriert.

BEISPIEL
     Das folgende Beispiel zeigt die Sortierspezifikation, die für eine
     Sortierfolge etwa für ein Telephonbuch benötigt wird.

     Die Sortierfolge ist durch folgende Regeln definiert:

     a)  Groß- und Kleinbuchstaben müssen zusammen sortiert werden, Groß-
         buchstaben haben aber Priorität vor Kleinbuchstaben.

     b)  Alle Sonderzeichen und Interpunktionszeichen sollen ignoriert wer-
         den.


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

colltbl(1M)                                                     colltbl(1M)

     c)  Ziffern sind wie ihre alphabetischen (englischen) Entsprechungen
         zu sortieren (z. B. 0 als zero, 1 als one).

     d)  Die Kombinationen Ch, ch und CH sollen zwischen C und D eingeord-
         net werden.

     e)  V und W, v und w sind zusammen einzuordnen.

     Die Spezifikationsdatei für colltbl enthält folgende Angaben:

               codeset telephone

               order is A;a;B;b;C;c;CH;Ch;ch;D;d;E;e;F;f;\
                        G;g;H;h:I;i;J;j;K;k;L;l;M;m;N;n;O;o;P;p;\
                        Q;q;R;r;S;s;T;t;U;u;{V;W};{v;w};X;x;Y;y;Z;z

               substitute "0" with "zero"
               substitute "1" with "one"
               substitute "2" with "two"
               substitute "3" with "three"
               substitute "4" with "four"
               substitute "5" with "five"
               substitute "6" with "six"
               substitute "7" with "seven"
               substitute "8" with "eight"
               substitute "9" with "nine"

INTERNATIONALE UMGEBUNG
     Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
     texte.

     Die Umgebungsvariable LCCTYPE bestimmt die Zeichenklassen und Zei-
     chenkonvertierung.

     Wenn LCMESSAGES oder LCCTYPE nicht oder als leere Zeichenkette defi-
     niert ist, wird der Wert von LANG als Standardwert für die jeweils
     nicht gesetzte oder leere Variable herangezogen. Ist auch LANG nicht
     oder als leere Zeichenkette definiert, verhält sich das System so, als
     wäre es nicht internationalisiert.

     Hat eine der Variablen für die internationale Umgebung einen ungülti-
     gen Wert, verhält sich das System so, als wäre keine Variable gesetzt.

     Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.








Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

colltbl(1M)                                                     colltbl(1M)

DATEIEN
     /lib/locale/locale/LCCOLLATE
          LCCOLLATE-Datenbasis für locale

     /usr/lib/locale/C/colltblC
          Eingabedatei zum Aufbau von LCCOLLATE in der Standardsprachumgebung

SIEHE AUCH
     memory(3C), setlocale(3C), strcoll(3C), string(3C), strxfrm(3C),
     environ(5).












































Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026