| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Values in komplexen Assoc-Listen bearbeiten (901 mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 27. Mai. 2015 10:38 <-- editieren / zitieren --> Unities abgeben:
Moin ! ich arbeitet manchmal mit sehr komplexen gepunkteten Listen um Daten zu speichern. Dabei können die Werte wiederum Listen sein die auch wieder gepunktet sein. Mir geht es jetzt darum das ich alle gepunkteten Liste durcharbeiten will und die Wert, wenn dieses nicht gerade Listen sind, bearbeiten. Ein Beispiel wäre: Zitat: Konvertiere überall wo der Key="code" ist den Wert in GROSSBUCHSTABEN
Hier gibt es ja sehr visierte Bastler. Meint einer von Euch eine Lösung dafür zu haben? Gruß Jan ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 27. Mai. 2015 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 27. Mai. 2015 11:01 <-- editieren / zitieren --> Unities abgeben:
hi ! Zitat: sollte easy zu realisieren sein
das sagt sich so leicht - insbesondere mapcar ist die Baustelle die ich nie verstanden habe und dann noch in Kombi mit rekursiv. Gruß Jan ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 27. Mai. 2015 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1217 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 27. Mai. 2015 12:33 <-- editieren / zitieren --> Unities abgeben:
|
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 27. Mai. 2015 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Zitat: Original erstellt von tappenbeck: hi !das sagt sich so leicht - insbesondere mapcar ist die Baustelle die ich nie verstanden habe und dann noch in Kombi mit rekursiv. Gruß Jan
Wenn Dir MAPCAR nicht gefällt, dann laufe die Liste doch einfach mit FOREACH durch. MAPCAR ist simpel, IMO simpler als jede andere Schleifenkonstruktion: damit teilst Du einer oder mehreren Listen nur mit, welche Funktion auf jedes Element (bzw auf die Elemente mehrerer Listen) anzuwenden ist. Welches Problem hast Du beim Verständnis? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 27. Mai. 2015 16:56 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
mal ein kleines Beispiel für rekursiven Aufruf: Code: (defun c:test () (setq test-liste '((1 "A") (2 "b") (3 "c") (4 ((1 "A") (2 "b") (3 "c"))) (5 3.2))) (mapcar 'gross test-liste) )(defun gross (obj / return) (cond ((= (type (cadr obj)) 'LIST);Unterliste? -> rekursiver Aufruf (setq return (cons (car obj) (mapcar 'gross (cadr obj)))) ) ((= (type (cadr obj)) 'STR) (setq return (list code (strcase (cadr obj)))) ) (t (setq return obj) ) ) return )
Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |