| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Vergleichen von String mit \\ (1666 mal gelesen)
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1213 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 14. Aug. 2008 12:10 <-- editieren / zitieren --> Unities abgeben:
hi ! ich habe Zeichenketten die mit \\ beginnen und möchte nun in einer Abfrage prüfen, ob diese Begingung war ist. Leider kommt nie das richtige Ergebnis heraus - vermutlich wegen der Interpretation von \\ Mein Code lautet bis dato: Zitat:
(if (> (strlen gc1) 6) (if (= (substr gc1 6) "\\Q15;") (princ "\n=> vorhanden !") (princ "\n=> NICHT vorhanden !") ) ;endif - substr ) ;endif - strlen
Kann mir einer von Euch weiterhelfen ? Gruß Jan :-) ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 14. Aug. 2008 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
bgnnn d Strngs mt "\\Q15;" dr st ds 6. Zchn rst "\\" ? snd d Strngs mmr glch lng, wl d mt (sbstr gc1 6) rbtst nd nschlßnd mt = sttt mt wcmtch vrglchst ? ch j, ds Wglssn dr Vkl st s n Mck b dr Kmmnktn mt dr
Für die anderen geneigten Mitleser: beginnen die Strings mit "\\Q15;" oder ist das 6. Zeichen erst "\\" ? sind die Strings immer gleich lang, weil du mit (substr gc1 6) arbeitest und anschließend mit = statt mit wcmatch vergleichst ? Ach ja, das Weglassen der Vokale ist so eine Macke bei der Kommunikation mit dir
------------------ - 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 |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 14. Aug. 2008 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 14. Aug. 2008 12:33 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1213 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 14. Aug. 2008 12:57 <-- editieren / zitieren --> Unities abgeben:
hallo ! vielen dank für die hilfe. @thomas: statt sich über vokale lustig zu machen - hättest du eher merken müssen, dass mir bei substr ein fehler unterlaufen ist. ich greife einmal auf joern (angepaßt) zurück und dann müsste das eigentlich so aussehen: (defun c:test (/) (setq gc1 "\\Q15;123456") (princ "\n=> ") (princ (substr gc1 1 6)) (if (> (strlen gc1) 6) (if (= (substr gc1 1 6) "\\Q15;") (princ "\n=> vorhanden !") (princ "\n=> NICHT vorhanden !") ) ) ) aber es funktioniert nicht ! als testausgabe kommt immer ein \ zuwenig zurück ! woran könnte es liegen ? PS: statt der vokale schreibe ich jetzt wieder alles klein ! gruß Jan :-) ------------------ jan :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 14. Aug. 2008 13:08 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
wegen deinem substr-Konstrukt meine obigen Fragen, denn Hellsehen kann ich leider nicht. Und das "//" zu "/" evaluiert ist dir klar (wegen Formartierungszeichen ...) ? ------------------ - 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 |
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: 14. Aug. 2008 13:16 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
Hi Jan, ein "\" im String leitet immer ein Sonderzeichen ein. Dein "\\Q15..." ist für Lisp also "\Q15". Willst Du "\\" haben, musst Du "\\\\" schreiben. Grüsse, Henning PS: dann aber konsequent: ps... ------------------ 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 |
A Hörnchen Mitglied Bauamtsleiter
Beiträge: 12 Registriert: 14.10.2003
|
erstellt am: 14. Aug. 2008 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 14. Aug. 2008 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für tappenbeck
|
tappenbeck Mitglied Vermessungsingenieur
Beiträge: 1213 Registriert: 30.05.2002 AutoCAD (Map)2019, Topobase, MapEdit, Lisp, .vb.net
|
erstellt am: 14. Aug. 2008 14:53 <-- editieren / zitieren --> Unities abgeben:
|