Aller au contenu

Messages recommandés

Posté(e)

Hello

 

j'ai une liste "listepropriete" avec 4 éléments

et je cherche a la trier suivant le 4ieme puis le 3ieme puis le 2 ieme

ce bout de lisp devrait le faire normalement

 

(setq listepropriete2 (vl-sort listepropriete
'(lambda (a B)
(if (= (cadddr a) (cadddr B))
(if (= (caddr a) (caddr B))
(< (cadr a) (cadr B))
(< (caddr a) (caddr B))
)
(< (cadddr a) (cadddr B))
)
)
)
)

 

un bout de la liste "listepropriete2"

hors je constate que vers la ligne 66 et au de la le trie ne semble plus etre bon

ca revient a 27.0 (depuis quand 27.0 est plus grand que 293.0 ?)

 

la ligne 66 a 71 devrait etre apres la ligne 5

ca trie pas a 8 chiffres ( que l'on ne voit pas en fait ) apres la virgule quand meme ?

 

[0] ("3E6102" "D" 27.0 37.2)

[1] ("3E611A" "D" 27.0 37.2)

[2] ("4847BD" "D" 27.0 37.2)

..

[5] ("484805" "D" 27.0 37.2)

[6] ("3E5AF0" "B" 112.5 37.2)

[7] ("48499D" "B" 112.5 37.2)

[8] ("4849B5" "B" 112.5 37.2)

[9] ("1866C" "B" 112.5 37.2)

[10] ("48B3A1" "B" 112.5 37.2)

..

[14] ("484D15" "D" 112.5 37.2)

[15] ("17A66" "D" 112.5 37.2)

...

[22] ("1757F8" "B" 124.0 37.2)

[23] ("3E5F52" "D" 124.0 37.2)

[24] ("3E5958" "A" 125.5 37.2)

..

[29] ("484CE5" "A" 125.5 37.2)

[30] ("17B08" "A" 125.5 37.2)

[31] ("18528" "A" 125.5 37.2)

[32] ("48B401" "A" 125.5 37.2)

..

[41] ("3E5700" "B" 267.0 37.2)

[42] ("48517D" "B" 267.0 37.2)

[43] ("485195" "B" 267.0 37.2)

[44] ("16A94" "B" 267.0 37.2)

[45] ("48BB81" "B" 267.0 37.2)

..

[51] ("3E58E0" "B" 269.0 37.2)

[52] ("3E5EAA" "B" 269.0 37.2)

..

[57] ("4850BD" "B" 269.0 37.2)

[58] ("4850D5" "B" 269.0 37.2)

[59] ("16D1C" "B" 269.0 37.2)

[60] ("1773C" "B" 269.0 37.2)

..

[64] ("48BAD9" "B" 269.0 37.2)

[65] ("3E5520" "B" 293.0 37.2)

[66] ("188F39" "D" 27.0 37.2)

[67] ("188F51" "D" 27.0 37.2)

[68] ("48B1C1" "D" 27.0 37.2)

[69] ("48B1D9" "D" 27.0 37.2)

[70] ("48B1F1" "D" 27.0 37.2)

[71] ("48B209" "D" 27.0 37.2)

[72] ("174BD0" "B" 114.5 37.2)

[73] ("4665C7" "B" 114.5 37.2)

 

 

Phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

ca trie pas a 8 chiffres ( que l'on ne voit pas en fait ) apres la virgule quand meme ?

 

Bien sûr que oui. On comapare les nombre réels en utilisant tous les chiffres significatifs (environ 15 sans compter les 0 au début ou à la fin).

Essaye:

(< 37.20000000000002 37.20000000000001)
(< 37.20000000000002 37.20000000000003)

Si tu veux comparer des nombre arrondis, il faut les arrondir dans les comparaisons de la fonction de tri.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

hello Gile

 

merci

 

oui j'ai bien un parametre avec LONGUEUR : 37.20000000000001

 

plutot que d'arrondir dans la fonction de tri, j'ai arrondi les données en créant la liste

 

Phil

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité