Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

ALPHABET-Klausel

&pagelevel(4)&pagelevel

Syntaxregeln

  1. Ist die Literal-Angabe in der ALPHABET-Klausel angegeben, darf ein gegebenes Zeichen für literal-1, literal-2 usw., auf das durch alphabetname in der PROGRAM COLLATING SEQUENCE-Klausel (siehe „OBJECT-COMPUTER-Paragraf“, "OBJECT-COMPUTER-Paragraf ") oder in der COLLATING SEQUENCE-Angabe der SORT- oder MERGE-Anweisung (siehe Kapitel „PROCEDURE DIVISION") Bezug genommen wird, nur einmal verwendet werden (siehe Beispiele 6-10 und 6-11).

  2. Die Wörter THROUGH und THRU sind gleichbedeutend.

  3. Die Angaben NATIVE und EBCDIC bedeuten im BS2000 dasselbe.

Allgemeine Regeln

  1. Durch die ALPHABET-Klausel kann ein Name mit einem bestimmten Zeichensatz und/oder einer alphanumerischen Sortierfolge verknüpft werden. Ist alphabetname in der PROGRAM COLLATING SEQUENCE-Klausel (siehe „OBJECT-COMPUTER-Paragraf“, "OBJECT-COMPUTER-Paragraf ") oder in der COLLATING SEQUENCE-Angabe einer SORT- bzw. MERGE-Anweisung (siehe Kapitel „PROCEDURE DIVISION") enthalten, wird damit eine Sortierfolge festgelegt. Wird auf alphabetname-1 in der
    SYMBOLIC CHARACTERS-Klausel oder in der CODE-SET-Klausel einer Dateierklärung (für sequenziell organisierte Dateien) Bezug genommen, wird damit der Zeichensatz festgelegt.

    1. Ist STANDARD-1 angegeben, dann ist der ausgewählte Zeichensatz oder die Sortierfolge der/die im American National Standard X3.4-1968, Code for Information Interchange (ASCII), festgelegte.

    2. Ist STANDARD-2 angegeben, dann ist der bezeichnete Zeichensatz die „International Reference Version of the ISO 7-Bit Code“, definiert im International Standard 646 „7-Bit Coded Character Set for Information Processing Interchange“. Jedes Zeichen des Standard-Zeichensatzes ist verknüpft mit dem entsprechenden Zeichen des EBCDIC-Zeichensatzes.

    3. Ist NATIVE oder EBCDIC angegeben, wird der Zeichensatz oder die Sortierfolge der Datenverarbeitungsanlage benutzt (EBCDIC).

    4. Sind Literale der ALPHABET-Klausel angegeben, darf alphabetname nicht in der CODE-SET-Klausel angegeben sein (siehe Abschnitt „CODE-SET-Klausel").

      • Handelt es sich um ein numerisches Literal, bezeichnet sein Wert die Ordnungszahl eines Zeichens (beginnend bei 1) innerhalb des EBCDIC-Zeichensatzes. Der Wert darf die Anzahl der Zeichen des EBCDIC-Zeichensatzes (256) nicht überschreiten.

      • Bei einem alphanumerischen Literal bezeichnet das Literal das angegebene Zeichen innerhalb des EBCDIC-Zeichensatzes. Enthält das alphanumerische Literal mehrere Zeichen, werden alle Zeichen im Literal in die beschriebene Sortierfolge in der angegebenen Reihenfolge eingefügt (siehe Beispiel 6-2).

      • Die Reihenfolge, in der die Literale in der ALPHABET-Klausel angegeben sind, beschreibt in aufsteigender Folge die Ordnungszahl der Zeichen innerhalb der spezifizierten Sortierfolge (siehe Beispiel 6-3).

      • Alle Zeichen innerhalb der EBCDIC-Sortierfolge, die nicht explizit mit der Literal-Angabe spezifiziert sind, haben in der Sortierfolge eine höhere Position als jedes einzelne der explizit beschriebenen Zeichen. Die relative Reihenfolge dieser nicht spezifizierten Zeichen unterscheidet sich nicht von der EBCDIC-Sortierfolge.

      • Ist THROUGH/THRU angegeben, nehmen die Zeichen im EBCDIC-Zeichensatz, beginnend mit dem in literal-1 und endend mit dem in literal-2 angegebenen Zeichen, aufeinanderfolgend aufsteigende Positionen in der spezifizierten Sortierfolge ein. Der durch die THROUGH/THRU-Angabe spezifizierte Wertebereich kann Zeichen des EBCDIC-Zeichensatzes entweder in aufsteigender oder in absteigender Reihenfolge enthalten (siehe Beispiel 6-4).

      • Ist ALSO angegeben, werden die Zeichen des EBCDIC-Zeichensatzes, angegeben durch literal-1 und literal-3 der selben Position in der spezifizierten Sortierfolge oder in dem Zeichensatz zugewiesen (siehe Beispiel 6-5).
        Wird in einer SYMBOLIC CHARACTERS-Klausel auf alphabetname-1 Bezug genommen, wird nur literal-1 verwendet, um das Zeichen des EBCDIC-Zeichensatzes darzustellen.

  2. Das Zeichen, das die höchste Position in der Sortierfolge des Programms hat, ist der figurativen Konstante HIGH-VALUE zugeordnet. Haben mehrere Zeichen die höchste Position in der Sortierfolge des Programms, ist das letzte angegebene Zeichen der figurativen Konstante HIGH-VALUE zugeordnet (siehe Beispiele 6-6 und 6-7).

  3. Das Zeichen, das die niedrigste Position in der Sortierfolge des Programms hat, ist der figurativen Konstante LOW-VALUE zugeordnet. Haben mehrere Zeichen die niedrigste Position in der Sortierfolge des Programms, ist das erste angegebene Zeichen der figurativen Konstante LOW-VALUE zugeordnet (siehe Beispiele 6-8 und 6-9).

Beispiel 6-2

ALPHABET ALPHATAB IS "AJKCDF".

1. Zeichen ist A
2. Zeichen ist J
.
.
6. Zeichen ist F

Beispiel 6-3

ALPHABET ALPHATAB IS "A" "C" "D" "Z".

1. Zeichen ist A
2. Zeichen ist C
3. Zeichen ist D
4. Zeichen ist Z

Beispiel 6-4

ALPHABET ALPHATAB IS "A" THRU "I".

1. Zeichen  A
2. Zeichen  B
3. Zeichen  C
.
.
8. Zeichen  H
9. Zeichen  I

Beispiel 6-5

ALPHABET ALPHATAB IS "A" ALSO "B" ALSO "C" ALSO "D".

Der niedrigsten Position in der Sortierfolge werden die Zeichen A, B, C und D zugeordnet.

Beispiel 6-6

ALPHABET ALPHATAB IS 193 THRU 1, 255 THRU 194.

Die höchste Position in der Sortierfolge hat das Zeichen, das an der 194. Stelle des EBCDIC-Zeichensatzes steht; dies ist das Zeichen A.
Der figurativen Konstante HIGH-VALUE wird A zugeordnet.

Beispiel 6-7

ALPHABET ALPHATAB IS 193 THRU 1, 255 THRU 197, "A" ALSO "B" ALSO "C".

Den Positionen 1 bis 193 der Sortierfolge werden die Zeichen zugeordnet, die an den Positionen 193 bis 1 des EBCDIC-Zeichensatzes stehen.

Den Positionen 194 bis 253 der Sortierfolge werden die Zeichen zugeordnet, die an den Positionen 255 bis 197 des EBCDIC-Zeichensatzes stehen.

Der Position 254 werden die Zeichen A, B, C zugeordnet, womit alle Zeichen des EBCDIC-Zeichensatzes einer Position der Sortierfolge zugeordnet sind. Der höchsten Position (254) sind die Zeichen A, B, C zugeordnet, wobei C das zuletzt angegebene Zeichen ist; C wird damit der figurativen Konstante HIGH-VALUE zugeordnet.

Beispiel 6-8

ALPHABET ALPHATAB IS "0" "1" "2".

Das niedrigste Zeichen in der Sortierfolge ist 0, somit wird 0 der figurativen Konstante LOW-VALUE zugeordnet.

Beispiel 6-9

ALPHABET ALPHATAB IS "A" ALSO "B" ALSO "C".

Der niedrigsten Position in der Sortierfolge sind die Zeichen A, B, C zugeordnet; das zuerst angegebene Zeichen A wird der figurativen Konstante LOW-VALUE zugeordnet.

Beispiel 6-10

für PROGRAM COLLATING SEQUENCE- und ALPHABET-Klausel

IDENTIFICATION DIVISION.
PROGRAM-ID. ABC.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
OBJECT-COMPUTER.
    PROGRAM COLLATING SEQUENCE IS ALPHATAB.
SPECIAL-NAMES.
    TERMINAL IS T
    ALPHABET ALPHATAB IS "X" "Y" "Z".
DATA DIVISION.
WORKING-STORAGE SECTION.
77  ITEM-1 PIC X(3) VALUE "ABC".
77  ITEM-2 PIC X(3) VALUE "XYZ".
PROCEDURE DIVISION.
MAIN.
    IF ITEM-1 > ITEM-2
    THEN
      DISPLAY "Richtig sortiert" UPON T
    END-IF
    STOP RUN.

Mit der Definition des Alphabetnamens ALPHATAB im SPECIAL-NAMES-Paragrafen wurde dem Zeichen

X die erste, Y die zweite, Z die dritte Position

der Sortierfolge zugewiesen.

Allen anderen Zeichen des EBCDIC-Zeichensatzes wird implizit eine Position der Sortierfolge zugewiesen, da ihre Positionen in der Sortierfolge höher sind als die der angegebenen Zeichen X, Y, Z und ihre Anordnung in der Sortierfolge unverändert aus dem EBCDIC-Zeichensatz übernommen wird.

1. bis 231. Position des EBCDIC-Zeichensatzes entspricht der 4. bis 234. Position der Sortierfolge.

235. bis 256. Position des EBCDIC-Zeichensatzes entspricht der 235. bis 256. Position der Sortierfolge.

A hat also Position 197, B Position 198, C Position 199.

Damit ist der Vergleich ITEM-1 > ITEM-2 wahr.

Beispiel 6-11

für PROGRAM COLLATING SEQUENCE- und ALPHABET-Klausel

IDENTIFICATION DIVISION.
PROGRAM-ID. ALPH.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
OBJECT-COMPUTER.
    PROGRAM COLLATING SEQUENCE IS ALPHA.
SPECIAL-NAMES.
    TERMINAL IS T
    ALPHABET ALPHA 1 THRU 247, 251 THRU 256
                   "7" ALSO "8" ALSO "9".
DATA DIVISION.
WORKING-STORAGE SECTION.
77  ITEM-1 PIC X(3) VALUE HIGH-VALUE.
77  ITEM-2 PIC X(3) VALUE "789".
PROCEDURE DIVISION.
P1 SECTION.
VERGLEICH.
    IF ITEM-1 = ITEM-2 
    THEN 
      DISPLAY "1. Vergleich OK" UPON T
    ELSE 
      DISPLAY "1. Vergleich nicht OK" UPON T
    END-IF
    IF ITEM-2 = HIGH-VALUE 
    THEN
      DISPLAY "2. Vergleich OK" UPON T
    ELSE 
      DISPLAY "2. Vergleich nicht OK" UPON T
    END-IF.
ENDE.
    STOP RUN.

Zeichen kleiner 7 bleiben wie in der Sortierfolge der Datenverarbeitungsanlage erhalten, Zeichen größer 9 schließen sich unmittelbar an, werden damit kleiner als 7.Die Zeichen 7, 8, 9 werden an die höchste Stelle gesetzt, wobei 9 als zuletzt angegebenes Zeichen „HIGH-VALUE“ entspricht.

Ergebnis:
1. Vergleich OK
2. Vergleich OK