Aller au contenu principal

Exemples de reconfigurations de données

Voici des exemples de types de règles de remplacement pour des applications précisément requises.

Insertion de littéral​

Pour insérer un littéral, séparez les termes du côté gauche en vue de son insertion à droite.

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

Les 80 caractères ASCII sont émis dans la zone de sortie, le littéral EBCDIC LIT étant inséré après les 10 premiers caractères ASCII.

Suppression​

Les termes de gauche sont séparés afin que le côté droit puisse omettre les termes indésirables.

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

Seuls les 10 caractères ASCII sont émis (en EBCDIC) dans la zone de sortie, les 7 chiffres binaires sont écartés.

Espacement dans le tampon de sortie​

Lorsqu'il existe un tampon de sortie préformaté (typiquement un tampon d'affichage), l'espacement peut être réalisé en omettant les fonctions de réplication et de valeur d'un terme situé à droite.

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

Le (E:6) fait sauter 48 positions de bit dans la zone de sortie, puis les 74 caractères ASCII sont convertis en EBCDIC et émis à la position de sortie courante.

Longueurs arbitraires​

Certains dispositifs/programmes génèrent un nombre variable de caractères par ligne et il est souhaitable d'en produire des enregistrements de longueur fixe.

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

Les caractères ASCII sont tronqués ou complétés par remplissage selon les besoins, puis convertis en EBCDIC dans un champ de 74 caractères.

Transposition​

Les champs à transposer doivent être isolés en tant que termes à gauche.

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

Calcul de longueur de chaîne​

Certains formats exigent la longueur de chaîne comme partie du flux de données. Cela peut être réalisé par la fonction de longueur.

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

Le terme de longueur est émis en premier, dans un champ de 8 bits. Dans ce cas, la longueur comprend le champ de longueur ainsi que le champ de caractères ASCII.

Expansion et compression des symboles répétés​

La règle suivante compresse des symboles répétés.

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

Étant donné la chaîne d'entrée ci-dessous, trois applications successives de la règle émettront la chaîne de sortie montrée.

         Input: XXXXYYZZZZZZZ
         Output: 4X2Y7Z