zeck2226 Posté(e) le 4 septembre 2006 Posté(e) le 4 septembre 2006 Bonjour, Est ce qu'il existe une fonction qui vérifie si un élément est présent dans une liste ? Ex:(setq toto ( list coordonnées1 ... coordonnéesn))fonction_en_question (toto coordonnées_test) avec true ou false ou autre en résultat Merci par avance pour vos réponses
Bred Posté(e) le 4 septembre 2006 Posté(e) le 4 septembre 2006 Salut, la foction que tu cherche est "foreach" : (setq toto ( list "coordonnées1" "coordonnées2" "coordonnées2")) (if (foreach n toto (equal "coordonnées2" n))(princ "coordonnées2 est dans la liste") (princ "coordonnées2 n'est pas dans la liste")) (princ) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
zeck2226 Posté(e) le 4 septembre 2006 Auteur Posté(e) le 4 septembre 2006 Merci Bred, je vois ce que je peux faire avec cette fonctionBonne journée
(gile) Posté(e) le 4 septembre 2006 Posté(e) le 4 septembre 2006 Salut, Tu peux aussi utiliser la fonction (member ...) qui retorurne la liste deouis la première occurence de l'élément recherché ou nil s'il n'y est pas présent : (member "c" '("a" "b" "c" "d")) retourne ("c" "d") (member "z" '("a" "b" "c" "d")) retourne nil donc (if (member "c" '("a" "b" "c" "d")) ... retournera T Si tu veux comparer des coordonnées, il vaut mieux utiliser (vl-member-if ...) avec la fonction (equal ...) et un fuzz. (if (vl-member-if '(lambda (pt) (equal coordonnées_test pt 1e-9)) toto) (princ "\ncoordonnées_test est dans toto) (princ "\ncoordonnées_test n'est pas dans toto) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant