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