| |
| 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: set_tile für text in DCL: Leerstellenproblem (523 mal gelesen)
|
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3849 Registriert: 15.10.2003
|
erstellt am: 23. Okt. 2009 17:30 <-- editieren / zitieren --> Unities abgeben:
Ein nicht so wichtiges, aber anscheinend seltsames Problem: Standard: Ich habe im DCL ein Feld als ":text { " definiert und spreche es über Lisp mit set_tile an. Das funktioniert alles gut; Leerstellen werden angezeigt. Weil der Text sehr lang werden kann, habe ich einen Textkürzer eingebaut - die Textvariable schaut dann so aus:
Code: "c:\\daten\\blibla1\\blibla2\\bl......a34\\blibla35\mein_langer_test.xls"
Das funktioniert alles gut, solange es keine Leerstellen gibt.Problem: Befinden sich in dem abgekürzten Text Leerstellen, dann wird die Anzeige(!) an der Leerstelle unterbrochen, obwohl die Variable vollständig ist. Also: Die Variable
Code: (setq x "c:\\daten\\blibla1\\blibla2\\bl......a34\\blibla35\mein langer test.xls")
wird in der Befehlszeile mit
Code: !x "c:\\daten\\blibla1\\blibla2\\bl......a34\\blibla35\mein langer test.xls"
angezeigt, im Dialogfenster verbleibt nur
Code: c:\\daten\\blibla1\\blibla2\\bl......a34\\blibla35\mein"
Bug? Oder Feature? Oder vergessener Parameter? Schönes Wochenende Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
archtools Mitglied
Beiträge: 965 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 23. Okt. 2009 18:38 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Zitat: Original erstellt von Peter2: Ein nicht so wichtiges, aber anscheinend seltsames Problem: Also: Die Variable
Code: (setq x "c:\\daten\\blibla1\\blibla2\\bl......a34\\blibla35\mein langer test.xls")
wird in der Befehlszeile mit
Code: !x "c:\\daten\\blibla1\\blibla2\\bl......a34\\blibla35\mein langer test.xls"
angezeigt, im Dialogfenster verbleibt nur
Code: c:\\daten\\blibla1\\blibla2\\bl......a34\\blibla35\mein"
Bug? Oder Feature? Oder vergessener Parameter?
Erstens: Leerzeichen im String sind kein Problem. Probier's mal mit (setq x "1 2 3 4"). Zweitens: ich kann mich dunkel erinnern, dass es bei der Übergabe von Strings aus Lisp an DCL ein Limit gibt - vermutlich dürften es 128 oder 256 Zeichen sein. Probier's mal mit verschieden langen Strings aus. Dasselbe Limit gibt's beispielsweise auch bei Strings in Xdata, bei Pfadnamen im GETFILED-Dialog usw.. Da hat sich Autodesk die Programmiererei wohl recht einfach gemacht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Peter2 Ehrenmitglied V.I.P. h.c.
Beiträge: 3849 Registriert: 15.10.2003
|
erstellt am: 23. Okt. 2009 19:37 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von archtools: Erstens: Leerzeichen im String sind kein Problem. Probier's mal mit (setq x "1 2 3 4").
Ja, das schrieb ich auch - es funktioniert gut in der Grundversion ("normale Texte"). Aber die Zusammensetzung aus Punkten und Backslash reagiert anders. Zitat: Original erstellt von archtools: ...dass es bei der Übergabe von Strings aus Lisp an DCL ein Limit gibt - vermutlich dürften es 128 oder 256 Zeichen sein. ...
Meine Strings haben maximal 100 Zeichen (eben weil sie bei Überlänge gekürzt werden). Peter ------------------ Für jedes Problem gibt es eine einfache Lösung. Die ist aber meistens falsch. ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MZjochen Mitglied Techniker
Beiträge: 18 Registriert: 14.02.2006 ACAD 2010, WIN XP/Vista
|
erstellt am: 23. Okt. 2009 20:52 <-- editieren / zitieren --> Unities abgeben: Nur für Peter2
Hallo Peter2 folgendes habe ich beobachtet: - ist der Text (ohne Leerzeichen) länger als der dafür vorgesehene Platz im Dialog wird er ab der Stelle einfach abgeschnitten - hat der Text jedoch Leerzeichen wird er am ersten Leerzeichen abgeschnitten übergeb deinen Text zum testen doch mal so: (ACET-STR-REPLACE " " "" X) oder so: (ACET-STR-REPLACE " " "_" X) Gruß Jochen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |