N° | Fonction | Catégorie | Version |
---|---|---|---|
BIS 11 | BiS_FillL | Gestion de Chaînes | 1.0 - Janvier 2007 |
But | Ajoute au début d'une chaîne, des caractères de remplissage. |
Prototype | (BiS_FillL Ch_ou_Nbr Nb_Car Type_Car ) |
Arguments | Ch_ou_Nbr - Le texte ou le nombre à formater - Chaîne Entier Réel - Nb_Car - Longueur finale de la chaîne retournée - Entier - Type_Car - Le caractère de remplissage - Chaîne - |
Retours | La chaîne formatée |
Var. globales | Néant |
Description | Ajoute des caractères de remplissage à gauche, c'est à dire au début, jusqu'à ce
que la longueur désirée de la chaîne de retour soit atteinte. Le premier argument peut être un nombre, entier ou réel, mais sera retourné sous forme de chaîne. |
Notes | En général, le caractère de remplissage sera l'espace " ", mais ce peut être
tout caractère ASCII non spécial. Si l'argument n'est ni une chaîne ni un nombre, la chaîne retournée est une chaîne ne contenant que les caractères de remplissage. Pour ajouter des caractères de remplissage à droite, utilisez BiS_FillR. |
Exemples | Commande: (setq T1 "Texte formaté") Commande: (BiS_FillL T1 20 " ") retourne " Texte formaté" Commande: (BiS_FillL T1 20 "*") retourne "*******Texte formaté" Commande: (BiS_FillL T1 10 "*") retourne "Texte formaté" Commande: (BiS_FillL 124500 10 "-") retourne "----124500" Commande: (BiS_FillL -123.4560 15 "=") retourne "======-123.4560" Commande: (setq L1 '(50 "abcd" 2.50)) Commande: (BiS_FillL L1 30 "Z") retourne "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" (L1 est une liste et non pas une chaîne ou un nombre - La fonction retourne ici, une chaîne de 30 caractères "Z"). |
1- (defun BiS_FillL (*Str_or_Nb *Nbr_Char *Char / Text1) 2- (cond 3- ((= (type *Str_or_Nb) 'INT) 4- (setq Text1 (itoa *Str_or_Nb)) 5- ) 6- ((= (type *Str_or_Nb) 'REAL) 7- (setq Text1 (rtos *Str_or_Nb)) 8- ) 9- ((= (type *Str_or_Nb) 'STR) 10- (setq Text1 *Str_or_Nb) 11- ) 12- (t (setq Text1 *Char)) 13- ) 14- (if (and 15- (= (type *Char) 'STR) 16- (= (type *Nbr_Char) 'INT) 17- ) 18- (while (< (strlen Text1) *Nbr_Char) 19- (setq Text1 (strcat *Char Text1)) 20- ) 21- ) 22- Text1 23- )
Lignes 3-4 : Si le 1er argument est un nombre entier, stocke en Text1 cet argument transformée en chaîne. Lignes 6-7 : Si le 1er argument est un nombre réel, stocke en Text1 cet argument transformée en chaîne. Lignes 9-10 :Si le 1er argument est une chaîne, stocke en Text1 cette chaîne. Ligne 12 : Dans tous les autres cas, stocke en Text1 un caractère de remplissage *Char Ligne 15 : Si le caractère de remplissage est bien une chaîne Ligne 16 : et si *Nbr_Char (le nombre total de caractères) est un entier, Ligne 18 : Tant que la longueur de Text1 est inférieure à *Nbr_Char, Ligne 19 : Ajoute un caractère de remplissage devant Text1 Ligne 22 : Retourne la nouvelle chaîne.