rebcao Posté(e) le 10 novembre 2014 Posté(e) le 10 novembre 2014 Bonjour à Toutes et à Tous, Soit la liste suivante, contenant des chaines avec des doublons, triplons, et plus : ("Nom BLOC" "123" "ABC" "BBB" "123" "AAA" "BBB" "123" "BBB" "123" "ABC" "789" "123") Existe-t-il une fonction LISP ou VLISP toute prête, pour faire le CUMUL ou faut-il passer par une boucle qui va traiter la liste élément par élément ? qui donnerait par exemple ce résultat sous forme de paire pointée et le TOTAL ? ( ( "Nom BLOC" . 1 ) ("123" . 5) ("BBB" . 3) ("AAA" . 1) ("ABC" . 2) ("789" . 1) ) Je vous remercie Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
Patrick_35 Posté(e) le 11 novembre 2014 Posté(e) le 11 novembre 2014 Salut (setq tbl '("Nom BLOC" "123" "ABC" "BBB" "123" "AAA" "BBB" "123" "BBB" "123" "ABC" "789" "123")) (while tbl (setq n (length tbl) js (car tbl) tbl (vl-remove js tbl) lst (cons (cons js (- n (length tbl))) lst) ) ) (reverse lst) --> (("Nom BLOC" . 1) ("123" . 5) ("ABC" . 2) ("BBB" . 3) ("AAA" . 1) ("789" . 1)) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 11 novembre 2014 Posté(e) le 11 novembre 2014 Salut, Un exemple de fonction LISP (defun) (defun groupItems (lst / pair result) (foreach item lst (setq result (if (setq pair (assoc item result)) (subst (cons item (1+ (cdr pair))) pair result) (cons (cons item 1) result) ) ) ) (reverse result) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
rebcao Posté(e) le 13 novembre 2014 Auteur Posté(e) le 13 novembre 2014 Bonjour, Je vous remercie tous les 2... vous confirmez donc qu'il n'existe pas de fonction toute faite... c'est effectivement ce genre de boucle que j'imaginais ! Merci. :) Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
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