> Tech > Des BIF à  la carte

Des BIF à  la carte

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

D'autres BIF assorties complètent la liste des nouveaux ajouts. Comme elles ne se situent nettement dans aucune catégorie, je couvre ensemble ces quelques BIF diverses ici. La BIF %Occur (Set/Get Occurrence of a Data Structure) définit ou obtient l'occurrence courante d'une structure de données. Elle a un seul paramètre, le

Des BIF à  la carte

nom de la structure
de données. Quand on l’utilise à 
gauche d’une opération d’affectation
(figure 5 en A), %Occur définit l’occurrence
courante ; quand on l’utilise à 
droite (B), elle extrait l’occurrence
courante.

On voudra parfois traduire des
caractères d’une chaîne d’une valeur à 
une autre, d’après l’information de traduction
fournie. C’est exactement ce
que fait la BIF %Xlate (Translate). Cette
BIF accepte quatre paramètres. Le premier
est une liste de caractères à  remplacer.
Le deuxième contient les valeurs
de remplacement à  utiliser quand
un caractère provenant du premier paramètre
est trouvé dans la chaîne. Pour
chaque caractère indiqué dans le premier
paramètre, on indique un caractère
de remplacement dans le
deuxième. Le troisième
paramètre est la chaîne
dont %Xlate traduira
les caractères. Le quatrième
paramètre est
facultatif et contient la
position de début de la
traduction dans la
chaîne (par défaut, 1).
Le code en C
montre une utilisation
classique de cette BIF –
traduire des caractères
minuscules en majuscules.

Dans cet
exemple, le champ
Lower contient les valeurs
a-z et le champ
Upper contient les valeurs
A-Z correspondantes.
Le code en D
montre un exemple similaire
qui ne traduit
pas les 10 premiers caractères
de la chaîne.
La BIF %SqRt
(Square Root of an
Expression) renvoie la
racine carrée d’une expression
numérique.
Elle a un seul paramètre,
le nombre dont
on veut calculer la racine
carrée. Si cet opérande
est de type flottant,
le résultat est
aussi de type flottant ;
sinon, le résultat est de
type packé. On devine
qu’une valeur négative
pour cette opérande
résulte en une exception.
Le code en E
montre un exemple de
cette BIF.

Il existe aussi deux nouvelles BIF
de gestion de la mémoire, %Alloc
(Allocate Storage) et %ReAlloc
(Reallocate Storage). %Alloc alloue
une quantité spécifiée par l’utilisateur
de stockage en tas et renvoie un pointeur vers ce stockage. Son

paramètre
unique est un nombre indiquant la longueur
du stockage à  allouer. Ce
nombre doit être non flottant avec
zéro décimale et doit être compris
entre 1 et 16.776.704. Le code en F démontre
l’utilisation de %Alloc.
Une fois le stockage alloué, on
peut modifier la quantité allouée en
utilisant %ReAlloc. Cette BIF accepte
deux paramètres. Le premier est le
pointeur courant vers le stockage et le
second est une nouvelle longueur qui
suit les mêmes règles que le paramètre
de longueur de %Alloc. Comme
%Alloc, %ReAlloc renvoie un pointeur
vers le stockage. Ce peut être un nouveau
pointeur ou le même que le pointeur
courant. En G, %ReAlloc change la
quantité de stockage allouée dans
l’exemple précédent et renvoie la valeur
du pointeur dans le champ du
pointeur d’origine.
En utilisant la BIF %ShtDn (Shut
Down) (en H), on peut déterminer si
un utilisateur a demandé l’arrêt du système.
Cette BIF n’a pas de paramètre
et renvoie un indicateur booléen. Une
valeur de « 1 » indique qu’une demande
d’arrêt (ou de fermeture) a été
émise.

Ceux d’entre vous qui intègrent
Java et RPG doivent noter l’ajout de la
BIF %This (Return Class Instance for
Native Method). C’est la réponse par
RPG au mot réservé de Java this. %This
renvoie une valeur Object qui contient
une référence à  l’instance de classe
pour le compte de laquelle la méthode
native est appelée, donnant aux méthodes
non statiques l’accès à  l’instance
classe. Le code en I montre une
instruction provenant d’une méthode
qui évoque une autre méthode,
SomeMethod, dans la même classe.

Téléchargez cette ressource

Préparer l’entreprise à l’IA et aux technologies interconnectées

Préparer l’entreprise à l’IA et aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010