Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ chrtbl(1M) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ctype(3C)

setlocale(3C)

environ(5)

chrtbl(1M)                                                       chrtbl(1M)

NAME
     chrtbl - Zeichenklassifikations- und -umwandlungstabellen erzeugen

SYNTAX
     chrtbl [file]

BESCHREIBUNG
     Das Kommando chrtbl legt zwei Tabellen an, die Informationen zu Zei-
     chenklassifikation, Umwandlung von Groß- in Kleinbuchstaben und umge-
     kehrt, zur Zeichensatz-Breite und zur Formatierung von Zahlen enthal-
     ten. Die eine Tabelle ist ein Array mit (257*2) + 7 Byte. Die Tabelle
     ist so kodiert, daß über Suchfunktionen die Klassifikation eines Zei-
     chens festgestellt werden kann, ein Zeichen umgewandelt werden kann
     [siehe ctype(3C)] und die Byte- und Bildschirmbreite eines Zeichens in
     einer der zusätzlichen Codetabellen bestimmt werden kann. Die andere
     Tabelle enthält Informationen über das Format von numerischen Werten,
     die keine Währungsangaben sind: das erste Byte gibt hier das Dezimal-
     trennzeichen an, das zweite Byte das Tausendertrennzeichen, und die
     restlichen Bytes enthalten eine mit dem Nullzeichen abgeschlossene
     Zeichenkette, die die Gruppierung angibt. (Jedes Element der Zeichen-
     kette wird als Ganzzahl angesehen, die wiederum die Anzahl der Ziffern
     angibt, aus denen die aktuelle Gruppe eines formatierten numerischen
     Wertes besteht, der keine Währungsangabe ist).

     chrtbl liest die vom Benutzer definierten Zeichenklassifikations- und
     -umwandlungsinformationen aus der Datei file und erzeugt drei Ausgabe-
     dateien im aktuellen Verzeichnis. Wollen Sie die Datei file aufbauen,
     so benutzen Sie als Ausgangspunkt die in /usr/lib/locale/C/chrtblC
     zur Verfügung stehende Datei. Sie können Einträge hinzufügen, sollten
     aber die ursprünglichen Werte für das System nicht ändern. Beispiels-
     weise kann es vorkommen, daß Sie für eine andere internationale Umge-
     bung (locale) acht-Bit Einträge zu den ASCII-Definitionen in dieser
     Datei hinzufügen wollen.

     Eine Ausgabedatei, ctype.c (eine Quelldatei in C), enthält ein Array
     mit (257*2)+7 Byte, das durch Verarbeitung der Informationen aus der
     Datei file entsteht. Sie sollten den Inhalt von ctype.c überprüfen und
     dadurch sicherstellen, daß das Array tatsächlich ihren Wünschen ent-
     spricht. (Außerdem könnte ein Anwendungsprogramm die Datei ctype.c
     verwenden.) Die ersten 257 Byte des Arrays in ctype.c werden zur Klas-
     sifikation von Zeichen verwendet. Die Zeichen, die zur Initialisierung
     dieser Bytes des Arrays benutzt werden, stellen Zeichenklassifikatio-
     nen dar, die in /usr/include/ctype.h definiert werden. Hierbei bedeu-
     tet beispielsweise S, daß ein Zeichen ein Trennzeichen ist. U|L
     bedeutet, daß das Zeichen ein Großbuchstabe bzw. ein Kleinbuchstabe
     ist. Die zweiten 257 Byte des Arrays werden zur Umwandlung von Zeichen
     benutzt. Diese Bytes des Arrays werden so initialisiert, daß Zeichen,
     für die Sie keine Umwandlungsinformationen bereitstellen, in sich
     selbst umgewandelt werden. Stehen dagegen Umwandlungsinformationen zur
     Verfügung, wird der erste Wert des Wertepaares dort gespeichert, wo
     normalerweise der zweite Wert des Wertepaares gespeichert würde und
     umgekehrt. Stellen Sie z. B. das Wertepaar <0x41 0x61> zur Verfügung,



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

chrtbl(1M)                                                       chrtbl(1M)

     so wird 0x61 dort gespeichert, wo im Normalfall 0x41 gespeichert
     würde, und 0x61 dort, wo normalerweise 0x41 gespeichert würde. Die
     letzten 7 Byte werden für Informationen zur Zeichenbreite für bis zu
     drei zusätzliche Codesätze verwendet.

     Die zweite Ausgabedatei (eine Datendatei) enthält dieselben Informa-
     tionen, ist aber so strukturiert, daß sie von den
     Zeichenklassifikations- und -umwandlungsroutinen effizient benutzt
     werden kann [siehe ctype(3C)]. Der Name dieser Ausgabedatei ist der
     Wert, den Sie dem Schlüsselwort LCCTYPE zuweisen, das aus der Datei
     file eingelesen wird. Bevor diese Datei von den
     Zeichenklassifikations- und -umwandlungsroutinen benutzt werden kann,
     muß sie im Verzeichnis /usr/lib/locale/locale mit dem Namen LCCTYPE
     installiert werden, und zwar vom Systemverwalter oder einem Element
     der Gruppe bin. Benutzer (user), Gruppe (group) und andere (others)
     benötigen Lesezugriff auf diese Datei. Weitere Zugriffsberechtigungen
     sollten nicht erteilt werden. Wenn Sie die Zeichenklassifikations- und
     -umwandlungstabellen in dieser Datei benutzen wollen, müssen Sie die
     Umgebungsvariable LCCTYPE entsprechend einstellen [siehe environ(5)
     oder setlocale(3C)].

     Die dritte Ausgabedatei (eine Datendatei) wird nur dann erzeugt, wenn
     in der Eingabedatei Informationen zur Formatierung numerischer Werte
     angegeben sind. Der Name dieser Ausgabedatei ist der Wert, den Sie dem
     Schlüsselwort LCNUMERIC zuweisen, das aus der Datei file eingelesen
     wird. Bevor diese Datei benutzt werden kann, muß sie im Dateiverzeich-
     nis /usr/lib/locale/locale unter dem Namen LCNUMERIC installiert wer-
     den, und zwar vom Systemverwalter oder einem Element der Gruppe bin.
     Benutzer (user), Gruppe (group) und andere (others) benötigen Lesezu-
     griff auf diese Datei. Weitere Zugriffsberechtigungen sollten nicht
     erteilt werden. Wenn Sie die Informationen zur Formatierung von nume-
     rischen Werten in dieser Datei benutzen wollen, müssen Sie die Umge-
     bungsvariable LCNUMERIC entsprechend einstellen [siehe environ(5)
     oder setlocale(3C)].

     Der Name der internationalen Umgebung (locale), in der Sie die Dateien
     LCCTYPE und LCNUMERIC installieren, sollte den in der Datei file
     definierten Konventionen entsprechen. Sind beispielsweise französische
     Konventionen definiert worden und lautet der Name für die französische
     Umgebung auf Ihrem System french, dann sollten Sie die Dateien im Ver-
     zeichnis /usr/lib/locale/french installieren.

     Ist keine Eingabedatei angegeben oder ist das Argument "-" vorhanden,
     liest chrtbl aus der Standardeingabe.

     Die Syntax der Datei file ermöglicht es dem Benutzer, folgende Defini-
     tionen vorzunehmen: die Namen der Datendateien, die von chrtbl erzeugt
     werden, die Zuordnung von Zeichen und Zeichenklassifikationen, die
     Beziehungen zwischen Groß- und Kleinbuchstaben, Byte- und Bildschirm-
     breite für bis zu drei zusätzliche Codesätze und drei Elemente zur
     Formatierung von Zahlen: das Dezimaltrennzeichen, das Tausendertrenn-
     zeichen und die Gruppierung. Das Kommando chrtbl erkennt folgende


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

chrtbl(1M)                                                       chrtbl(1M)

     Schlüsselwörter:

     LCCTYPE          Name der von chrtbl erzeugten Datendatei, die Infor-
                       mationen zur Zeichenklassifikation, -umwandlung und
                       -breite enthält.

     isupper           Zeichencodes, die als Großbuchstaben gelten sollen.

     islower           Zeichencodes, die als Kleinbuchstaben gelten sollen.

     isdigit           Zeichencodes, die als Zahlen gelten sollen.

     isspace           Zeichencodes, die als Trennzeichen gelten sollen.

     ispunct           Zeichencodes, die als Interpunktionszeichen gelten
                       sollen.

     iscntrl           Zeichencodes, die als Steuerzeichen gelten sollen.

     isblank           Zeichencodes für das Leerzeichen.

     isxdigit          Zeichencodes, die als Hexadezimalziffern gelten sol-
                       len.

     ul                Zuordnung zwischen Groß- und Kleinbuchstaben.

     cswidth           Informationen über Bytegröße und Bildschirmbreite
                       (standardmäßig jeweils ein Zeichen breit).

     LCNUMERIC        Name der von chrtbl erzeugten Datendatei, die die
                       Informationen für das Formatieren von Zahlen aufneh-
                       men soll.

     decimalpoint     Dezimaltrennzeichen.

     thousandssep     Tausendertrennzeichen.

     grouping          Zeichenkette, in der jedes Element als Ganzzahl
                       angesehen wird, die die Anzahl von Ziffern angibt,
                       aus denen die aktuelle Gruppe in einer formatierten
                       Zahl besteht, die aber keine Währungsangabe ist.

     Alle Zeilen mit dem Nummernzeichen (#) in der ersten Spalte werden als
     Kommentare angesehen und werden ignoriert. Auch Leerzeilen werden
     ignoriert.

     Die Zeichen für isupper, islower, isdigit, isspace, ispunct, iscntrl,
     isblank, isxdigit und ul können als hexadezimale oder oktale Konstan-
     ten dargestellt werden (z. B. kann der Buchstabe a als 0x61 in
     Hexadezimal-Schreibweise oder als 0141 in Oktal-Schreibweise darge-
     stellt werden). Hexadezimale und oktale Konstanten können durch ein
     oder mehrere Leerzeichen und/oder Tabulatorzeichen getrennt werden.


Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

chrtbl(1M)                                                       chrtbl(1M)

     Mit dem Gedankenstrich (-) können Sie einen Bereich aufeinanderfolgen-
     der Zahlen angeben. Der Gedankenstrich kann durch ein oder mehrere
     Leerzeichen von den jeweiligen Zahlen getrennt sein, es muß aber nicht
     unbedingt ein Leerzeichen vorhanden sein.

     Mit dem Gegenschrägstrich (\) wird angezeigt, daß die Zeile fortge-
     setzt wird. Nach einem Gegenschrägstrich ist nur ein Carriage-Return-
     Zeichen erlaubt.

     Die Zuordnung von Groß- und Kleinbuchstaben (ul) wird in Form geordne-
     ter Paare von oktalen oder hexadezimalen Konstanten ausgedrückt. Dabei
     wird der Großbuchstabe zuerst, der entsprechende Kleinbuchstabe danach
     angegeben. Ein derartiges Paar steht in spitzen Klammern. Zwischen den
     beiden Konstanten muß mindestens ein Leerzeichen stehen. Zwischen den
     Konstanten und den spitzen Klammern (< >) können ein oder mehrere
     Leerzeichen stehen, es müssen aber nicht unbedingt Leerzeichen vorhan-
     den sein.





































Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

chrtbl(1M)                                                       chrtbl(1M)

     Im folgenden finden Sie das Format einer Eingabespezifikation für
     cswidth: n1:s1,n2:s2,n3:s3. Hierbei gilt:

          n1     Bytegröße für zusätzlichen Codesatz 1, erforderlich
          s1     Bildschirmbreite für zusätzlichen Codesatz 1
          n2     Bytegröße für zusätzlichen Codesatz 2
          s2     Bildschirmbreite für zusätzlichen Codesatz 2
          n3     Bytegröße für zusätzlichen Codesatz 3
          s3     Bildschirmbreite für zusätzlichen Codesatz 3

     decimalpoint und thousandssep werden durch ein Einzelzeichen angege-
     ben, das dem betreffenden Trennzeichen entspricht. grouping wird durch
     eine in Anführungszeichen eingeschlossene Zeichenkette angegeben, in
     der jedes Element oktal oder hexadezimal dargestellt werden kann. Mit
     \3 oder \x3 kann beispielsweise der Wert eines Elements der Zeichen-
     kette auf 3 gesetzt werden.

BEISPIELE
     Im folgenden ist ein Beispiel für eine Eingabedatei dargestellt, mit
     der die Definitionstabelle für den Codesatz von USA-ENGLISH in einer
     Datei mit dem Namen usa erzeugt wird und mit der die Informationen zum
     Formatieren von Zahlen, die keine Währungsangaben sind, in einer Datei
     mit dem Namen num-usa festgelegt werden.

          LCCTYPE  usa
          isupper   0x41 - 0x5a
          islower   0x61 - 0x7a
          isdigit   0x30 - 0x39
          isspace   0x20 0x9 - 0xd
          ispunct   0x21 - 0x2f   0x3a - 0x40   0x5b - 0x60   0x7b - 0x7e
          iscntrl   0x0 - 0x1f     0x7f
          isblank   0x20
          isxdigit  0x30 - 0x39   0x61 - 0x66   0x41 - 0x46
          ul       <0x41 0x61> <0x42 0x62> <0x43 0x63>  \
                <0x44 0x64> <0x45 0x65> <0x46 0x66>  \
                <0x47 0x67> <0x48 0x68> <0x49 0x69>  \
                <0x4a 0x6a> <0x4b 0x6b> <0x4c 0x6c>  \
                <0x4d 0x6d> <0x4e 0x6e> <0x4f 0x6f>  \
                <0x50 0x70> <0x51 0x71> <0x52 0x72>  \
                <0x53 0x73> <0x54 0x74> <0x55 0x75>  \
                <0x56 0x76> <0x57 0x77> <0x58 0x78>  \
                <0x59 0x79> <0x5a 0x7a>
          cswidth         1:1,0:0,0:0
          LCNUMERIC      numusa
          decimalpoint   .
          thousandssep   ,
          grouping        "\3"

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



Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

chrtbl(1M)                                                       chrtbl(1M)

     Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert ist, wird
     der Wert von LANG als Standardwert 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.

DIAGNOSE
     Die von chrtbl erzeugten Fehlermeldungen sind selbsterklärend. Sie
     zeigen Fehler in der Kommandozeile oder syntaktische Fehler innerhalb
     der Eingabedatei an.

WARNUNG
     Wenn Sie die Dateien in /usr/lib/locale/C ändern, so reagiert das
     System in nicht-vorhersagbarer Weise.

DATEIEN
     /usr/lib/locale/locale/LCCTYPE
          Datendateien mit Informationen zur Zeichenklassifikation, Umwand-
          lung von Zeichen und Zeichensatzbreite. Diese Informationen wer-
          den von chrtbl erstellt.

     /usr/lib/locale/locale/LCNUMERIC
          Datendateien mit Informationen zur Formatierung von Zahlen. Diese
          Informationen werden von chrtbl erstellt.

     /usr/include/ctype.h
          include-Datei mit Informationen, die von Zeichenklassifikations-
          und -umwandlungsroutinen benutzt werden.

     /usr/lib/locale/C/chrtblC
          Eingabedatei, die zum Aufbau von LCCTYPE und LCNUMERIC in der
          standardmäßig vorgegebenen internationalen Umgebung verwendet
          wird.

SIEHE AUCH
     ctype(3C), setlocale(3C), environ(5).












Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

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