> Tech > Faire un passage de données latéral

Faire un passage de données latéral

Tech - Par iTPro - Publié le 24 juin 2010
email

Quand les deux variables (source et résultat) sont des données caractère, EVAL est l'équivalent de l'opération MOVEL(P) (Move left with blank padding). EVALR est l'équivalent de MOVE(P). Le code en format fixe suivant

C Movel(p) Source Result
C Move(p) Source2 Result2
est converti en
Result = Source; //

Faire un passage de données latéral

MOVEL(P)
Evalr Result2 = Source2; // MOVE(P)

Si l’on veut éviter de combler le résultat avec des blancs,
il faut prendre en compte les longueurs des champs respectifs.
Si le résultat est plus court que la source, il faut
utiliser la fonction %SUBST (Substring) à  droite de l’expression
pour attribuer la portion appropriée du champ source
au résultat :

Result = %Subst(Source
     :%Size(Source)-%Size(Result)+1
     :%Size(Result)) ;

Bien que ce code plutôt encombrant soit capable de
bien convertir une opération MOVE dans cette situation, il
sera préférable de le simplifier en substituant les tailles en
octets réelles des champs source et résultat. Ainsi, si la
source a neuf octets et si le résultat en a cinq, utilisez ce
code dans la version en format libre :

Result = %Subst(Source:5:5);

Si la variable result est plus longue que la variable
source, on peut utiliser la fonction %SUBST à  gauche de
l’expression d’attribution, pour
n’attribuer la source qu’à  une portion
du résultat :

%Subst(Result
%Size(Result)-%Size(Source)+1) =
Source;

Si la source a cinq octets et si le résultat en a neuf, on
peut simplifier le code

%Subst(Result:5) = Source;

Pour une opération MOVEL sans remplissage, il faut
quand même ajuster les emplacements, mais on utilisera
encore la fonction %SUBST si le résultat est plus long que la
variable source :

%Subst(Result:1:%Size(Source)) = Source;

Si la source a cinq octets et si le résultat en a neuf, on
peut simplifier le code

%Subst(Result:1:5) = Source;

Bien entendu, si le résultat est plus court que la source,
une attribution simple fera l’affaire dans une conversion
MOVEL:

Result = Source;

Téléchargez gratuitement cette ressource

Comment aborder la sauvegarde moderne ?

Comment aborder la sauvegarde moderne ?

Au-delà de l’effet de « corvée », souvent soulignée par les administrateurs, la sauvegarde moderne est un nouveau concept qui a le potentiel de transformer toute direction des systèmes d’information, quelle que soit sa taille, et d’apporter des réponses fonctionnelles nouvelles pour rendre le service informatique plus efficace. Découvrez comment aborder la sauvegarde moderne

Tech - Par iTPro - Publié le 24 juin 2010