>>" ich glaube dass der Punkt in der Liste das Problem hervorruft."Würde ich nicht so beschreiben, auch wenn dieser nicht irrelevant ist bei dem Thema.
Schau mal, ganz ohne strcat:
Befehl: (setq Kian '(1 . 2))
(1 . 2)
Befehl: (setq Kian '(1 . 2 3))
; Fehler: Überzählige CDR-Exemplare in Listenpaar mit Punkttrennung in Eingabe
Befehl: (setq Kian '(1 2 3))
(1 2 3)
Edit:
Mit strcat als Funktion hat das nichts zutun, wenngleich es richtig ist: STRCAT dürfen nur Strings übergeben werden!
Schau dir die Fehlermeldung nocheinmal an:
Fehler: Überzählige CDR-Exemplare in Listenpaar mit Punkttrennung in Eingabe"
Ein Listenpaar, eine DottedList, ist eine besondere Liste mit zwei Ausdrucken
und die Besonderheit ist das diese durch einen Punkt getrennt vorliegen.
(70 . 1) statt (70 1)
Der Fehler bezieht sich auf ein überzähliges cdr-Exemplar und hier zeigt sich auch ein Unterschied zwischen normaler Liste und einer DottedList:
(cdr (70 1)) -> liefert eine Liste mit dem Listenrest: (1)
(cdr (70 . 1)) -> liefert den zweiten Ausdruck: 1
(70 1 2 3 4) -> okay
(70 . 1 2 3) -> nicht okay
Immer gut, www.autolisp.info
>>"warum der nicht funktioniert bzw .. ausgibt verstehe ich nicht. dass strcat müsste doch die strings miteinander verbinden? warum macht er (strcat) es da nicht "
strcat erhält überhaupt keine Argumente von dir, genauer gesagt soll strcat überhaupt nicht ausgeführt werden,
das hast du dem Programm mit dem Apostroph mitgeteilt und so dem Programm gesagt: Damit NÜSCHT machen!
'(strcat 8 . "Modul " (itoa modulanzahlverti) "px" (itoa modulanzahlhori)) (cons 10 anfangsliste) (cons 11 endlisteseite1))
kann auch so geschrieben werden:
(QUOTE(hier passiert NICHTS, der Inhalt muss nur den Konventionen entsprechen und das trifft auf eine Liste (1 . 2 3 4 5 6) nicht zu))
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP