Zum Hauptinhalt springen

Beispiele einiger Datenumkonfigurationen

Das Folgende sind Beispiele für Typen von Ersetzungsregeln für spezifisch benötigte Anwendungen.

Einfügen von Literalen​

Um ein Literal einzufügen, trennt man die Terme auf der linken Seite für dessen Einfügung auf der rechten Seite.

         a(A:10),b(A:70)->(a),(E'LIT':3),(b)

Die 80 ASCII-Zeichen werden im Ausgabebereich ausgegeben, wobei das EBCDIC-Literal LIT nach den ersten 10 ASCII-Zeichen eingefügt wird.

Löschung​

Die Terme auf der linken Seite werden getrennt, damit die rechte Seite unerwünschte Terme weglassen kann.

         (B:7),a(A:10)->(Ev(a):L(a))

Nur die 10 ASCII-Zeichen werden (als EBCDIC) im Ausgabebereich ausgegeben, die 7 Binärziffern werden verworfen.

Abstand im Ausgabepuffer​

Wo ein vorformatierter Ausgabepuffer existiert (typischerweise ein Anzeigepuffer), kann der Abstand realisiert werden, indem man die Replikations- und Wertfunktionen aus einem Term auf der rechten Seite weglässt.

         a(A:74)->(E:6),(Ev(a):74)

Das (E:6) bewirkt, dass 48 Bitpositionen im Ausgabebereich übersprungen werden, dann werden die 74 ASCII-Zeichen in EBCDIC umgewandelt und an der aktuellen Ausgabeposition ausgegeben.

Beliebige Längen​

Einige Geräte/Programme erzeugen eine variable Anzahl von Zeichen pro Zeile, und es ist wünschenswert, daraus Datensätze fester Länge zu erzeugen.

         a(A:#) -> (Ev(a):74)

Die ASCII-Zeichen werden nach Bedarf abgeschnitten oder aufgefüllt und in einem 74-Zeichen-Feld in EBCDIC umgewandelt.

Transposition​

Zu transponierende Felder sollten als Terme auf der linken Seite isoliert werden.

         a(X:2),b(A:#)->(Ev(b):L(b)),(a)

Berechnung der Zeichenkettenlänge​

Einige Formate erfordern die Zeichenkettenlänge als Teil des Datenstroms. Dies kann durch die Längenfunktion bewerkstelligt werden.

         a(E:10),b(X'FF':2)->(BL(a)+L(b)+8:8),(Av(a):L(a)),(b)

Der Längenterm wird zuerst ausgegeben, in einem 8-Bit-Feld. In diesem Fall umfasst die Länge sowohl das Längenfeld als auch das ASCII-Zeichenfeld.

Expansion und Kompression wiederholter Symbole​

Die folgende Regel packt wiederholte Symbole.

         a(E:1), b(E#*v(a):L(b)) -> (BL(b)+1:8),(a)

Mit der unten angegebenen Eingabezeichenkette werden drei aufeinanderfolgende Anwendungen der Regel die gezeigte Ausgabezeichenkette ausgeben.

         Input: XXXXYYZZZZZZZ
         Output: 4X2Y7Z