| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: string in einzelne Teile zerlegen (1280 mal gelesen)
|
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 21. Mrz. 2008 14:47 <-- editieren / zitieren --> Unities abgeben:
hallo an alle lispler hab mich in der letzten zeit ein wenig mit autolisp beschäftigt, die tutorials aufmerksam gelesen und soweit auch alles was ich mir vorgenomen hab weitesgehendgeschafft. Nur ein problem bleibt. Ich möchhte einen beliebig langen string in seine bestandteile zerlegen. bei dem string handelt es sich nicht um eine liste sondern nur eine zeichenfolge die mit leerzeichen oder auch nicht versehen sein können. nun möchte ich alle zeichen, egal ob leerzeichen oder nicht in einer liste von einzelnen zeichen ausgeben. Nur wie? kann mir dabei viellicht jemand helfen? wäre sehr dankbar dafür... Lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 21. Mrz. 2008 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
Hallo Baumhaus, erstmal herzlich Willkommen im Forum Zu Deiner Frage, sieh Dir mal die Funktion (substr ... ) an, die kann Dir Teile der Zeichenkette liefern. (substr deine_zeichenkette 1 1) liefert Dir das erste Zeichen (substr deine_zeichenkette 2) liefert alles außer dem ersten Zeichen. Das ganze in eine Schleife (z. b ein repeat mit der Länge der ursprunglichen Zeichenkette (strlen ... ) ) sollte in die Richtung führen. Oder vielleicht nutzt Dir auch die (vl-string->list ... ) Funktion, die liefert die eine Liste der Ascii-Codes der Zeichen. HTH Viele Grüße Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 21. Mrz. 2008 15:14 <-- editieren / zitieren --> Unities abgeben:
hallo, danke ertsmal das könnte es schon sein nur eine frage hab ich noch an dich, spider_dd: wennn ich jetzt nicht weiß wie lang die zeichenkette ist und eine while bzw repeat- schleife mache, wie, wann beende ich sie dann. vielleicht hast du darauf noch eine antwort für mich? Lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumhaus Mitglied student
Beiträge: 27 Registriert: 21.03.2008
|
erstellt am: 21. Mrz. 2008 15:17 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13529 Registriert: 30.11.2003 .
|
erstellt am: 21. Mrz. 2008 18:57 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
ganz kurz: (mapcar 'chr (vl-string->list "Guten Abend")) ergibt ("G" "u" "t" "e" "n" " " "A" "b" "e" "n" "d") beim Teilen an Leerzeichen oder so, würd ich sowas nehmen
(defun DT:STR-DIVS(STRING SEPARATOR / POS OFFSET LISTE) (if(and(=(type STRING) 'STR)(=(type SEPARATOR) 'STR)) (progn (setq POS (vl-string-search SEPARATOR STRING)) (setq OFFSET (1+(strlen SEPARATOR))) (while POS (setq LISTE (cons (substr STRING 1 POS) LISTE) STRING (substr string (+ POS OFFSET)) POS (vl-string-search SEPARATOR STRING) ) ) (reverse (cons STRING LISTE)) ) ) ) (DT:STR-DIVS "Guten Abend Leute" " ") liefert dann ("Guten" "Abend" "Leute") ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 22. Mrz. 2008 16:53 <-- editieren / zitieren --> Unities abgeben: Nur für baumhaus
|