N° |
Fonction |
Catégorie |
Version |
BIL 17 |
BiL_DelPos |
Gestion des Listes |
1.0 - Janvier 2007 |
Description
But
|
Supprime un élément d'une liste, d’après son numéro d'ordre
|
Prototype
|
(BiL_DelPos Liste NumItem)
|
Argument
|
Liste - La liste à traiter - Liste -
NumItem - Numéro de l’ élément à supprimer - Entier -
|
Retours
|
La liste modifiée
|
Var. globales
|
Néant
|
Description
|
Retourne une liste après y avoir enlevé un élément donné d’après sa position
dans la liste.
|
Notes
|
Le comptage se fait normalement : 1er élément = numéro 1, etc...
|
Exemples
|
Commande: (BiL_DelPos '(1 2 3 4 5 6 7 8 9) 5)
retourne (1 2 3 4 6 7 8 9)
(BiL_DelPos '("a" "b" "c" "d" "e" "f" "g" "h") 3)
retourne ("a" "b" "d" "e" "f" "g" "h")
Commande: (BiL_DelPos (list "aa" "bb" "cc") 0)
retourne ("aa" "bb" "cc")
L’élément n° 0 n’existe pas.
Commande: (BiL_DelPos (list "aa" "bb" "cc") 5)
retourne ("aa" "bb" "cc")
L’élément n° 5 n’existe pas.
|
La fonction
1- (defun BiL_DelPos(*List1 *PosElm / LstRet Cpt1)
2- (setq Cpt1 0)
3- (repeat (length *List1)
4- (if (/= Cpt1 (1- *PosElm))
5- (progn
6- (if (= Cpt1 0)
7- (setq LstRet (list (nth Cpt1 *List1)))
8- (setq LstRet (append LstRet (list (nth Cpt1 *List1))))
9- )
10- )
11- )
12- (setq Cpt1 (1+ Cpt1))
13- )
14- LstRet
15- )
Ligne 2 : Initialise le compteur d’éléments – Le 1er élément est le numéro 0
Ligne 3 : Répète autant de fois qu’il y a d’éléments dans la liste
Ligne 4 : Si le compteur numéro d’élément est différent de l’argument Position_d’élément,
Ligne 6 : Si c’est le premier élément de la liste,
Ligne 7 : La liste de retour LstRet est égale au 1er élément de *List1
Ligne 8 : Sinon ajoute l’élément numéro Cpt1 de *List1 à la liste de retour LstRet
Ligne 9 : Fin If ligne 6
Ligne 10 : Fin Progn ligne 5
Ligne 11: Fin If ligne 4
Ligne 13 : Fin de la boucle Repeat
Ligne 14 : Retourne la liste LstRet.(ou nil si l’argument *List1 n’est pas une liste).
Repeat : Ici, évalue les lignes 12 à 18 autant de fois qu'il y a de caractères dans la chaîne à modifier
Length : Renvoie un nombre entier indiquant le nombre d'éléments contenus dans une liste.
List : Prend un nombre quelconque d'expressions et les regroupe dans une liste.
Append : Prend un nombre indéfini de listes et les traite ensemble comme une seule liste.
Nth : Renvoie le nième élément d'une liste. - Le 1er élément est le numéro zéro..