Accueil > Réalisations > Logiciels > Logiciels HP48 > Fonction RENAME sur HP48
Fonction RENAME sur HP48
mardi 26 juin 2007, par
La HP48 ne dispose pas de commande permettant de renommer une variable (programme, valeur...). Voici comment remédier à cela en RPL de base
Une première version
<< -> OLD NEW << OLD RCL NEW STO OLD PURGE >> >>
Une version un peu plus élaborée
La version précédente ne contrôle pas le type des arguments, ceci peut se faire grace à la fonction TYPE qui renvoi 6 pour un nom :
<< -> OLD NEW << IF OLD TYPE 6 == NEW TYPE 6 == AND THEN OLD RCL NEW STO OLD PURGE ELSE "Invalid argument types" END >> >>
Ca ne suffit pas...
Oui mais... si la destination existe déjà on va l’écraser. Nous allons protéger cela en tentant un RCL sur la destination et en traitant l’erreur :
<< -> OLD NEW << IF OLD TYPE 6 == NEW TYPE 6 == AND THEN IFERR NEW RCL THEN DROP OLD RCL NEW STO OLD PURGE ELSE DROP "Destination already exists !" DOERR END ELSE "Invalid argument types !" DOERR END >> >>
Pour fignoler !
dernier problème, l’ordre des variables est modifié par le RCL/PURGE/STO. Avec les fonctions VARS (liste des variables) et ORDER (choix de l’ordre dans le menu), nous aloons rétablir l’ordre inital. Du coup il faut rajouter un peu de traitement d’erreurs...
<< -> OLD NEW << IF OLD TYPE 6 == NEW TYPE 6 == AND THEN IFERR NEW RCL THEN DROP VARS IFERR OLD RCL THEN DROP2 "Original does not exist !" DOERR ELSE NEW STO OLD PURGE 1 OVER OLD POS 1 - SUB IF DUP SIZE 0 > THEN ORDER ELSE DROP END END ELSE DROP "Destination already exists !" DOERR END ELSE "Invalid argument types !" DOERR END >> >>
Il y a surement des améliorations possibles.... N’hésitez pas à me faire parvenir vos propositions !