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 !


