| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Abfrage Pos eines Symbols (403 mal gelesen)
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 02. Dez. 2005 06:18 <-- editieren / zitieren --> Unities abgeben:
Morgen Lipler Frage mit der folgenden Zeile kann ich eine Pos. eines Symbols abfragen, (setq pos (vl-string-position (ascii "/") txt)) Wie kann man das ändern das ich mehrere Symbole abfragen kann (setq pos (vl-string-position (ascii "/-_.") txt)) so geht es nicht. danke im voraus. mfg ------------------ Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 02. Dez. 2005 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Heinz, ersteinmal zu deinem Vokabular: Du willst keine Symbole abfragen, sondern das Vorkommen eines Zeichens ermitteln. Es gibt verschiedene Interpretationen deiner Aufgabe. a) die Zeichen in der vorgegebenen Reihenfolge, als zusammenhängende Zeichenkette betrachtet -> dann ist vl-string-search die Funktion, die du suchst. b) jedes einzelne Zeichen für sich betrachtet, dann musst du das (vl-string-position ..) eben mehrmals aufrufen. Da das jedoch recht mühsam ist, habe ich mir dafür bereits eine Funktion geschrieben, die zudem jedes Vorkommen eines Zeichens ermittelt:
Code:
(defun getCharPositions (STR CHARs /) ;Ermittelt die Positionen mehrerer Zeichen in einem String (mapcar '(lambda (CHAR) (cons CHAR(getCharPosition STR CHAR)) ) CHARs ) ) (defun getCharPosition (STR CHAR / pos posli) ;Ermittelt die Positionen eines einzelnen Zeichens in einem String (while (setq pos(VL-STRING-POSITION (ascii CHAR) STR)) (setq pos (1+ pos) posli (if posli (cons (+ pos (car posli)) posli) (cons pos posli) ) STR (substr STR (1+ pos)) ) ) (reverse posli) ) ;Beispiele (setq TESTSTR "c:\\Temp\\Save\\Delete\\") ;Aufrufe für einzelne Strings (getCharPosition TESTSTR "\\") (getCharPosition TESTSTR "e") (getCharPosition TESTSTR "x") ;Aufrufe für mehrere Strings (getCharPositions TESTSTR '("\\" "e" "c" "S" "x"))
Bei Fragen ... Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Autodesk User Group Central Europe Individuelle Lösungen von Heute auf Morgen. AUGCE Manager Deutschland Jackpot on demand - Wir eröffnen den Spätsommer mit einer Verlosung!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 02. Dez. 2005 08:06 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 02. Dez. 2005 08:56 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 02. Dez. 2005 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 02. Dez. 2005 09:24 <-- editieren / zitieren --> Unities abgeben:
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 02. Dez. 2005 09:29 <-- editieren / zitieren --> Unities abgeben:
|