DenisHen Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 Bonjour à tous. Voilà, dans une routine, j'ai une liste "normale" (setq Lst_GeoRD '("A" "B" "C")Mais j'aimerais "convertir" cette liste en une liste de paires pointées (beaucoup plus facile à gérer pour moi) :(setq LstPP_GeoRD '((1 . "A") (2 . "B") (3 . "C") ) )Si quelqu'un a une astuce, une idée, un conseil... Je suis preneur... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
nosset Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 une piste (cons "rang de l'element" "element") pour avoir le rang (nth...) Autodesk Expert Elite Member
vincentp010 Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 Une idée vite fait(setq Lst_GeoRD '("A" "B" "C") (setq nb 0) (setq LstPP_GeoRD (mapcar (function (lambda (x) (cons (setq nb (1+ nb)) x))) Lst_GeoRD)) Aide au téléchargement du cadastre dgfip-download-helper Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0 Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js
Patrick_35 Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 Salut Ou encore(mapcar 'cons '(1 2 3 4) '("A" "B" "C" "D")) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 Salut à tous... Et mille mercis pour votre aide. Mon seul problème est que je ne connais pas le nombre d'éléments dans ma liste. Je pense donc opter pour la solution de Vincent qui semble me convenir le plus... Je teste tout ça dès que j'en aurais le temps... Encore merci à tous... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 Salut, Je ne vois pas bien l'intérêt de faire ce type de liste de paire pointées.Pour accéder à la valeur d'une paire à l'indice i tu devras faire :(cdr (assoc i listeAssoc))quand tu peux directement faire :(nth i listeSource) Et si en plus, tu ne connais pas le nombre d'éléments... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 Salut (gile). En fait, je lirais, dans un fichier ASCII, une liste de personnes. Ce fichier sera structuré ainsi :;DessinateurJean PXXXRaymond UYYYDenis HZZZ;TopographeAlbert EXXXLuc DYYYRené OZZZPour que, selon nos agences françaises, l'utilisateur de cette macro puisse éditer ce fichier et modifier simplement cette liste.J'utilise des listes de paires pointées pour, accroche-toi bien, utiliser ton super "ListBox" ;) . Mais je suis sûr que tu vas avoir une meilleur solution. Mais je ne suis pas certain qu'elle sera assez simple pour moi... :huh: Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 En fait, je lirais, dans un fichier ASCII, une liste de personnes.Allez, soyons fou. Depuis Excel ou LibreOffice :D @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 Allez, soyons fou. Depuis Excel ou LibreOffice :D J'y vais franco... Avec NotePad++ Ce sont des fichiers avec un maximum de 10 personnes... Donc 10 lignes... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 J'y vais franco... Avec NotePad++ Ce sont des fichiers avec un maximum de 10 personnes... Donc 10 lignes...C'était pour que tu commences à jouer avec Excel ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 C'était pour que tu commences à jouer avec Excel ;)Je connais plutôt bien Excel (et le tableau, et le VBA), mais pourquoi cette question ? Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 Je connais plutôt bien Excel (et le tableau, et le VBA), mais pourquoi cette question ?Un fichier Excel est facile à modifier/remplir par tes collègues.Un fichier texte plus compliqué (pas pour toi) pour eux.Cela t'éviteras de devoir gérer le personnel de chaque agence. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 Ok, mais je n'ai AUCUNE idée de la façon de communiquer avec Excel depuis le Lisp... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 13 octobre 2016 Posté(e) le 13 octobre 2016 Ok, mais je n'ai AUCUNE idée de la façon de communiquer avec Excel depuis le Lisp...Tu as pleins d'outils sur le net.(gile), tony tanzillo, moi-même (et je dois en oublier) avons fait des outils pour communiquer avec Excel, du style :(setq fichier (ouvrir_fichier_excel "c:/.../.../.../test.xls")(setq valeur (lire_valeur fichier "A1")) Une petite recherche ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 Ok. Demain matin, à la première heure, je m'y colle... Je vais commencer par ton IXL... Juste pour comprendre le machin du truc... Et merci du conseil... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 Patrick, tu as écris, dans un post de 2004... Oulala, c'est pas jeune... Ceci :(vlax-import-type-library :tlb-filename "C:/Program Files/Microsoft Office/Office/Excel8.olb" :methods-prefix "xl-" :properties-prefix "xlp-" :constants-prefix "xlc-"))(Tiens, je viens de m'apercevoir qu'on ne peut pas placer des espaces en début de ligne dans les "quote" car mon texte brut en a... CadMin, es-tu là ? ?) J'avoue ne pas connaitre ces ":" en première ligne... Ca correspondrait pas à :(vlax-import-type-library-tlb-filename "C:/Program Files/Microsoft Office/Office/Excel8.olb"(vlax-import-type-library-methods-prefix "xl-"(vlax-import-type-library-properties-prefix "xlp-"..........Je tiens une piste ? Car là, je découvre peut-être la même "logique" qu'en VBA avec les "With" ? Oui, je fouille ton IXL... Et alors ? Vu qu'il est très bien fait, commenté, partagé... Moi, tout de suite... J'm'introduis, j'en profite... J'suis un crack... Pour ces p'tites...(désolé... J'ai Gainsbourg dans mes écouteurs...) B)On peut se détendre après 19h... C'est plus cool... Non ? Mais demain... Sérieux... On bossera là... En tous cas... Merci pour ton aide, toujours aussi précieuse... Maître Patrick... Car avec tout ce que tu as fais pour nous, les "novices" et autres... On te le doit... ;) Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 13 octobre 2016 Auteur Posté(e) le 13 octobre 2016 J'ai regardé ton IXL... Mais je pense qu'il ne travaille qu'avec un fichier Excel ouvert... Non ? Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 14 octobre 2016 Posté(e) le 14 octobre 2016 Salut Tu as API_XLS par exemple. Tout est expliqué dans le lispTu trouveras par exemple(setq Mon_Appli (lancer_excel)) (setq Mon_Classeur (ouvrir_fichier Mon_Appli "c:\\Données\\Test.xls")) (setq Ma_Feuille (feuille_active Mon_Classeur)) (lire_cellule Mon_Classeur Ma_Feuille "A1") (fermer_fichier Mon_Classeur) (fermer_appli (list Mon_Appli Mon_Classeur)) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 14 octobre 2016 Auteur Posté(e) le 14 octobre 2016 Salut Patrick_35, et merci pour ton aide... Je termine un petit souci de liste et je regarde ça. L'idée d'utiliser un classeur Excel est beaucoup plus constructive qu'un simple fichier ASCII. Merci encore... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 14 octobre 2016 Auteur Posté(e) le 14 octobre 2016 Salut. Bon, je me suis attelé aux liaisons Lisp <-> Excel. J'ai donc utilisé "Api_xls.lsp" et j'ai suivi ton exemple, voici donc mon code :(defun c:testFich (/ fichier Mon_Appli Mon_Classeur Ma_Feuille ContCel) (setq fichier (findfile "Doss_IC.xls")) ;;fichier = "C:\config\autocad\lisp\Doss_IC.xls" (setq Mon_Appli (lancer_excel)) (princ "\nExcel lancé...") (setq Mon_Classeur (ouvrir_fichier Mon_Appli (decodeurl fichier))) (princ "\nClasseur : 'Doss_IC.xls' ouvert...") (activer_feuille Mon_classeur "Personnel") (princ "\nFeuille 'Personnel' activée...") (setq Ma_Feuille (feuille_active Mon_Classeur)) (princ "\nFeuille 'Personnel' ouverte...") (setq ContCel (lire_cellule Mon_Classeur Ma_Feuille "A1")) (princ "\nLecture de la cellule 'A1'") (fermer_fichier Mon_Classeur) (fermer_appli Mon_Appli) (princ) ) ;_ Fin de defunMais AutoCAD me répond :Commande: TESTFICHExcel lancé...Classeur : 'Doss_IC.xls' ouvert...Feuille 'Personnel' activée...Feuille 'Personnel' ouverte...; erreur: type d'argument incorrect: VLA-OBJECT nilC'est donc lors du (setq ContCel que ça plante... Et là... Ca dépasse de très loin mes piètres connaissances... Si quelqu'un a une idée... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 14 octobre 2016 Posté(e) le 14 octobre 2016 Si tu pouvais joindre ton fichier Excel (avec des noms bidon) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 14 octobre 2016 Auteur Posté(e) le 14 octobre 2016 Aucun problème...Doss_IC_CadXP.zipIl est "normalement" compatible Excel 97 / 2003... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 14 octobre 2016 Posté(e) le 14 octobre 2016 Chez moi, tout fonctionne. Le résultatExcel lancé...Classeur : 'Doss_IC.xls' ouvert...Feuille 'Personnel' activée...Feuille 'Personnel' ouverte...Lecture de la cellule 'A1'Et la lecture de la cellule A1 me renvoie "Fonction" @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 14 octobre 2016 Auteur Posté(e) le 14 octobre 2016 M'enfin... Je vais essayé d'autres méthodes de liaisons Lisp <-> Excel... Car là, je ne peux rien faire d'autre... Merci encore pour ton aide... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Goldorak44 Posté(e) le 14 octobre 2016 Posté(e) le 14 octobre 2016 Salut, idée en passant, as tu bien chargé le modele com ? (vl-load-com) ;) PIRO CharlesDeveloppeur Revit, RV/RA - Formateur RevitPIRO CIE
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