| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Kombination aus member und wcmatch (1061 mal gelesen)
|
CADblue Mitglied
Beiträge: 117 Registriert: 20.07.2011 ACAD18,Linear19
|
erstellt am: 10. Feb. 2012 08:19 <-- editieren / zitieren --> Unities abgeben:
Hi Leute!! Gibts einen befehl der eine zeichenkette nach einem bestimmten inhalt durchsucht und mir dann den rest bzw den anfang der zeichenkette zurück gibt? also so eine mixture aus "wcmatch" bei der zeichenkette und "member" bei listen. ich habs schon mit substr und strlen versucht, aber da der inhalt immer variabl ist komm ich auch keinen grünen zweig-.- hoffe jemand hat ne idee... mfg blue Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Feb. 2012 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
|
CADblue Mitglied
Beiträge: 117 Registriert: 20.07.2011 ACAD18,Linear19
|
erstellt am: 10. Feb. 2012 08:37 <-- editieren / zitieren --> Unities abgeben:
tja in "vl" und "vlax" oder wie auch immer bin ich leider noch nicht so bewandert und werde es wohl auch noch ein bisschen herrauszögern. danke cadmi auch wenn heut morgen wieder mitm falschen fuss aufgestanden bist... mfg blue Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Feb. 2012 08:54 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
|
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 10. Feb. 2012 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
hallo cadblue, hier mal eine moeglichkeit ohne "vl-" aus der "stdlib" von http://xarch.tu-graz.ac.at/autocad/stdlib/ (vielleicht gefaellt dir das mehr.) Code: ;;; Returns first position of match in str or nil ;;; case-sensitive, no regex, plain substring, first index = 1 ;;; Boyer-Moore method by Serge Pashkov, faster than old strpos below ;;; Lisp translation of Modula-2 program from the book ;;; "Algorithms and data structure", N.Wirth, Prentice-Hall, Inc. 1986 ;;; see contrib/boyer-moore.lsp for benchmarks and samples (defun STD-STRPOS (match s / m n i d p c mc mm1) (setq m (strlen match) n (strlen s)) (if (<= 1 m n) (progn (setq mc (substr match m 1) mm1 (1- m)) (setq d nil i 0) ;;build table of shifts d (while (< (setq i (1+ i)) m) (setq d (cons (cons (substr match i 1) (- m i)) d))) ;;search match within string (setq i m) (while (<= 1 i n) (setq i (if (or (/= (setq c (substr s i 1)) mc) (/= (substr s (- i mm1) m) match)) (+ i (if (setq p (assoc c d)) (cdr p) m)) (- mm1 i))) ;negative value for ending ) ;;return position or nil (if (< i 0) (- i)) ) ) )
gruss marco ------------------ Marco Heuer www.arc-aachen.de Airport Office Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Feb. 2012 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
|
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 10. Feb. 2012 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
mir musste das nicht sagen. deshalb hab ich ja auch Zitat: (vielleicht gefaellt dir das mehr.)
geschrieben. die funktion verwendet eben nur nicht den (irgendwann) erweiterten autolisp-befehlssatz. und wenn cadblue den nicht verwenden will (weshalb auch immer), hat er mit dieser funktion die moeglichkeit, sich nicht weiter mit den erweiterungen auseinandersetzen zu muessen. gruss marco ------------------ Marco Heuer www.arc-aachen.de Airport Office Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 10. Feb. 2012 10:42 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
|
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 10. Feb. 2012 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
Zitat: Original erstellt von CADblue: Hi Leute!!Gibts einen befehl der eine zeichenkette nach einem bestimmten inhalt durchsucht und mir dann den rest bzw den anfang der zeichenkette zurück gibt? also so eine mixture aus "wcmatch" bei der zeichenkette und "member" bei listen. ich habs schon mit substr und strlen versucht, aber da der inhalt immer variabl ist komm ich auch keinen grünen zweig-.- hoffe jemand hat ne idee... mfg blue
Ist doch ganz einfach: In einer Schleife prüfst Du einfach, ob die ersten Zeichen (substr str 1 laenge) Deinem Suchstring (strlen = laenge) entsprechen, und solange das nicht der Fall ist, kürzt Du den zu prüfenden String einfach um das erste Zeichen (substr str 2). Aufhören tust Du, wenn Du entweder den Suchstring gefunden hast, oder wenn der Rest des Prüfstrings kürzer ist als der Suchstring.
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: 10. Feb. 2012 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für CADblue
Zitat: Original erstellt von archtools: Ist doch ganz einfach: In einer Schleife prüfst Du einfach...
so ähnlich hatte ich es vor vl-string-search auch gemacht - allerdings auch für mehrfaches Vorkommen: Code: (defun vox-multi-instr (string2scan string2search / l z return) (setq l (strlen string2search) z 1) (repeat (1+ (- (strlen string2scan) l)) (if (= string2search (substr string2scan z l)) (setq return (cons z return)) ) (setq z (1+ z)) ) (reverse 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 |