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