Carboleum Posté(e) le 21 avril 2011 Posté(e) le 21 avril 2011 Salut à tous, Pour charger nos lisps, nous utilisons un répertoire spécifique et une fonction qui charge tous les *.lsp de ce répertoire. Or cette fonction trie les noms de fichiers via (acad_strlsort). Fonction qui ne trie manifestement pas comme les autre ;-) (cfr http://autocad.xarch.at/news/faq/misc/strlsort-bug.html) Je gère ces lisps via un programme de ma composition écrit en PERL qui me permet de déterminer les dépendances (telle fonction utilise telle fonction, etc.) J'ai besoin de trier les fichiers *.lsp de la même façon qu'AutoCAD ne les trie via (acad_strlsort). De cette façon, en cas de fonctions doublons, j'obtiens facilement, dans mon prog PERL, la dernière version chargée de la fonction en double; et donc la version réellement utilisée par AutoCAD. Bref, pour que PERL trie comme acad_strlsort, j'ai besoin de connaitre la table des caractères qu'utilise acad_strlsort. Est-ce que quelqu'un a des info là-dessus ? Merci d'avance Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog
Patrick_35 Posté(e) le 21 avril 2011 Posté(e) le 21 avril 2011 Salut Le plus simple est de faire un tri pour comprendre(setq lst '("5" "1" "BRE" "az" "2" "bre" "Az")) (acad_strlsort lst) --> ("1" "2" "5" "az" "Az" "bre" "BRE") (vl-sort lst '<) --> ("1" "2" "5" "Az" "BRE" "az" "bre") @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Carboleum Posté(e) le 21 avril 2011 Auteur Posté(e) le 21 avril 2011 Salut Patrick, merci por ta réponse. J'ai en effet fait quelques tests: j'ai mis quelques fichiers sur un répertoire test, puis:(mapcar 'print (acad_strlsort (vl-directory-files "c:/__Lisp/mngt/test"))) ".""..""__List_handling.lsp""__Math.lsp""__String_handling.lsp""_3d.lsp""_Make.lsp""_Matrix.lsp""_String.lsp""Ascii.lsp""B-test.lsp""bl-macro.lsp""bl-share.lsp""expt.lsp" acad_strlsort semble complètement faire fi de la casse des caractères. Ca c'est pas un problème. Par contre, je ne trouve aucune table de caractère (Ascii, ISO-8859-1, Windows-1252, etc.) qui place le underscore avant les chiffres. La page http://autocad.xarch.at/news/faq/misc/strlsort-bug.html donne bien l'ordre de tri utilisé par acad_strlsort, mais pas le nom de la table de caractères (charset) qui lui correspond. J'ai juste besoin de connaitre ce nom, afin d'utiliser ce même charset dans ma programmation PERL. Si quelqu'un a des info là-dessus ?... je suis preneur! [Edité le 21/4/2011 par Carboleum] Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog
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