Les opérations MOVE ne sont pas limitées aux déplacements « de même type ». On peut utiliser MOVE pour transférer un champ numérique dans une chaîne caractère et faire le transfert inverse. Des opérations MOVE reconnaissent également les types de données date/heure natives, permettant d'entrer facilement dans des dates et
C’est une interception de données
d’en sortir
avec peu de restrictions ou d’exigences
de coding spéciales. Pour
se livrer au même exercice en format
libre, il faut recourir à une ou
plusieurs fonctions de conversion
de données.
A partir d’une valeur numérique,
la fonction %EDITC (Edit
code) renverra une valeur caractère.
Cette fonction applique
l’un des codes d’édition familiers
de RPG aux nombres ; par
exemple:
%Editc(01234.56:'2')
applique le code d’édition 2 à la valeur
numérique et renvoie une valeur caractère
de ‘ 1,234.56’ au programme
(avec un espace à gauche, dans ce cas).
IBM documente chaque code d’édition
valide dans le ILE RPG Reference
(SC09-2508).
On peut utiliser la fonction
%EDITC en code en format libre pour
attribuer une valeur numérique à une
chaîne caractère. Pour remplacer une
opération MOVE en format fixe par
une spécification en format libre, on
utilise le code edit X pour renvoyer
une valeur source numérique simple
comme une valeur caractère. Puis on
attribue cette valeur caractère au résultat,
en utilisant la même technique que
pour l’attribution caractère à caractère.
Si les champs source et résultat sont de
même taille, l’attribution simple suivante
fera l’affaire :
Result = %Editc(Source:'X');
Si la source et le résultat sont de
taille différentes, on utilisera la fonction
%SUBST en plus de la fonction
%EDITC. Par exemple, si Source est un
nombre de sept chiffres et Result est
un champ caractère de neuf octets, on
codera l’expression d’attribution en
format libre suivante au lieu d’un
MOVE:
%Subst(Result:3) = %Editc(Source:'X');
Le code d’édition X fonctionne
aussi bien pour des nombres packés et
zonés (signés) et pour des nombres
positifs et négatifs.
On pourrait être tentés d’utiliser la
fonction %CHAR pour déplacer une information
de numérique à des chaînes
caractère, mais les résultats seront généralement
différents de ceux des opérations
MOVE. Par exemple, la fonction
%CHAR enlève les zéros de gauche
d’une valeur numérique ; et elle renvoie
un caractère signe séparé pour
des nombres négatifs au lieu d’insérer
le signe dans la représentation hexadécimale
du nombre. Les exemples de la
figure 3 montrent la différence entre
les deux fonctions si Source (neuf digits)
a une valeur de -001234567.
La fonction %CHAR fonctionne
bien, cependant, pour déplacer une valeur
date/heure dans une variable caractère.
Quand on spécifie une valeur
date/heure pour une fonction %CHAR
à convertir, il faut coder un second paramètre
contenant le format dans lequel
on veut voir la valeur de renvoi du
caractère. Dans cette exemple, si
Source est une variable date avec une
valeur de December 31, 2005, Result
aura une valeur caractère de ‘2005-12-
31’ après le calcul :
Resul = %Char(Source:*ISO);
Notons que la valeur de renvoi
%CHAR inclut des caractères séparateurs.
Pour les omettre, il suffit d’inclure
un zéro à droite avec le résultat :
Result = %Char(Source:*ISO0);
Si l’on utilisait ce code au lieu de
l’exemple précédent, Result aurait une
valeur caractère ‘20051231’.
Téléchargez cette ressource
Guide de Threat Intelligence contextuelle
Ce guide facilitera l’adoption d’une Threat Intelligence - renseignement sur les cybermenaces, cyberintelligence - adaptée au "contexte", il fournit des indicateurs de performance clés (KPI) pour progresser d' une posture défensive vers une approche centrée sur l’anticipation stratégique
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Ofelia, ex-Bonitasoft, lance une solution d’orchestration IA agentique
- Le bruit au travail et ses effets sur la concentration dans les bureaux modernes
- Cyberattaques assistées par IA : Pourquoi le modèle Mythos d’Anthropic représente une menace sérieuse pour la cybersécurité
- Avec les Smart Data, les entreprises mènent la danse de l’observabilité moderne
Articles les + lus
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
À la une de la chaîne Tech
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
