| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: listenelemente löschen und tauschen (1547 mal gelesen)
|
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 06. Okt. 2005 10:34 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 06. Okt. 2005 11:00 <-- editieren / zitieren --> Unities abgeben: Nur für gmk
fertig-> denke ich ja, integriert -> nein . Zur Listenbearbeitung hast du dir sicher schon den Thread angesehen?! und zu deinem speziellen Problem : das hier ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
[Diese Nachricht wurde von CADmium am 06. Okt. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gmk Mitglied Dipl.-Ing.(FH) Vermessung
Beiträge: 669 Registriert: 23.10.2002 Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM
|
erstellt am: 06. Okt. 2005 11:05 <-- editieren / zitieren --> Unities abgeben:
|
Dabrunz Mitglied
Beiträge: 127 Registriert: 28.05.2003
|
erstellt am: 06. Okt. 2005 12:20 <-- editieren / zitieren --> Unities abgeben: Nur für gmk
Tag zusammen. Der Hinweis von CADmium war ziemlich gut. Du musst nur die von Holger vorgeschlagene Lösung minimal anpassen, um ein Element an einer vorgegeben Position in einer List zu löschen: Code:
(defun L ELETE_POSITION (LISTE #pos #new / returnLIST) (repeat #pos (setq returnLIST (cons (car LISTE) returnLIST) LISTE (cdr tmpLISTE) ) ) (append (reverse returnLIST);** war bisher falsch rum sortiert (cdr LISTE);** der soll schließlich raus ) )
Genau diese Position zu tauschen, ist quasi das gleiche: Code:
(defun L:SUBST_POSITION (LISTE #pos #new / returnLIST) (repeat #pos (setq returnLIST (cons (car LISTE) returnLIST) LISTE (cdr tmpLISTE) ) ) (append (reverse returnLIST) (list #new);<-- das ist der Unterschied (cdr LISTE) ) )
Spannend ist nur noch die Frage, was hier passieren soll, wenn die angegebene Position größer ist als die Länge der übergebenen Liste. Hier wird fleißig mit NIL-Einträgen gefüllt, damit am Ende auch gilt:
Code: (nth #pos (L:SUBST_POSITION LISTE #pos #new)) -> #new
Ob das so gewünscht ist, bleibt abzuwarten. Achim Dabrunz ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |