> Tech > Clavier et émulateur sur iSeries Access

Clavier et émulateur sur iSeries Access

Tech - Par Wayne Madden - Publié le 24 juin 2010
email

 Le clavier 5250 écran vert de System i est différent de tout autre clavier. Pour ceux d’entre vous qui ont un terminal non intelligent avec un clavier 5250, les différences sont évidentes. Le clavier 5250 comporte des touches telles que field-exit, field +, field -, SysRq, Roll-Up, Roll-Down et ATTN.

Si vous utilisez un ordinateur fixe ou portable et un émulateur 5250, comme iSeries Access PC5250, PCOM, ou tout autre émulateur du marché, ces touches 5250 sont évidentes seulement dans la fonction de mapping de clavier du logiciel d’émulation. Je tiens à signaler quelques trucs sympa que vous pouvez faire avec la touche ATTN du clavier 5250 qui, sur iSeries Access, est généralement la touche Esc.

Clavier et émulateur sur iSeries Access
 Q: Quel est le moyen rapide d’extraire un nombre de 30 chiffres maximum (sans se soucier des décimales) à partir d’une chaîne de 30 caractères ?

Je ne veux que les chiffres à l’exception de tous les caractères supplémentaires dans la chaîne. Par exemple, si la chaîne contient « 123456789X123456789X123456789X », j’aimerais renvoyer le nombre 123,456,789,123,456,789,123,456,789 dans un champ packé.

R : A partir de la V5R2, la fonction intégrée %DEC permet d’extraire facilement les chiffres d’une chaîne de caractères. Cependant, %DEC aura des difficultés avec les lettres présentes dans votre chaîne. Je vous conseille d’écrire une routine qui utilise les BIF %CHECK et %REPLACE pour enlever les caractères autres que des chiffres, puis d’utiliser %DEC pour convertir la chaîne en un champ packé. Le BIF %CHECK détecte les caractères qui n’appartiennent pas à une chaîne.

Par exemple, dans le code suivant, p prendra la valeur de la position du premier caractère dans la variable Input qui n’est pas un nombre de 0 à 9. p = %check(‘123456789’ : Input): Vous pouvez utiliser la BIF %REPLACE pour remplacer les données dans une position particulière, avec des données différentes.

Si vous dites à cette BIF de remplacer quelque chose par une chaîne vide, elle enlève simplement ce caractère de la chaîne. Par exemple, le code suivant supprime le caractère dans la position p: Input = %replace(‘: Input: p: 1): Sachant cela, il est facile d’écrire une sous-procédure qui utilise d’abord %CHECK et %REPLACE pour enlever les nonchiffres de la chaîne, puis utilise la BIF %DEC pour convertir le résultat en format packé (figure 6).

– Scott Klement

Téléchargez gratuitement cette ressource

SMART DSI : La Nouvelle Revue du Décideur IT !

SMART DSI : La Nouvelle Revue du Décideur IT !

Actualités, Chroniques et Dossiers exclusifs pour les Décideurs et Professionnels IT. Vos ressources essentiels pour comprendre les enjeux, évaluer les perspectives et conduire la transformation numérique de l'entreprise. Découvrez en exclusivité une édition complète de la nouvelle revue SMART DSI.

Tech - Par Wayne Madden - Publié le 24 juin 2010