Bonjour,
On doit parfois convertir des entiers (N° de quelque chose) en texte mais en ajoutant des 0 en début pour conserver un tri correct sur des textes.
Par exemple 1 devient 0001 24 devient 0024 145 devient 0145
En cherchant à droite et à gauche, je suis tombé sur une solution assez originale, en tout cas je n'y aurais jamais pensé.
Si on veut convertir un entier sur 4 caractères, il suffit de le diviser par 10 puissance 4, le convertir en texte avec 4 décimales, puis supprimer les 2 premiers caractères.
Ainsi, si on prend 12 et que l'on veut le mettre sur 4 caractères, on le divise par 10^4, on obtient 0.0012, puis on retire les 2 premiers caractères et il reste 0012.
Voilà ce que ça peut donner en lisp
(defun Int2Str (iNumber iNbZero)
(substr (rtos (/ (float iNumber) (expt 10 iNbZero)) 2 iNbZero) 3 iNbZero)
)
Je travaille toujours avec DIMZIN à 0, donc pas de souci de suppression des 0 de début ou de fin dans la conversion. Je pense qu'il faudrait l'intégrer.
Olivier