Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  set_tile für text in DCL: Leerstellenproblem

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  set_tile für text in DCL: Leerstellenproblem (518 mal gelesen)
Peter2
Ehrenmitglied V.I.P. h.c.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 23. Okt. 2009 17:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von archtools an!   Senden Sie eine Private Message an archtools  Schreiben Sie einen Gästebucheintrag für archtools

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 23. Okt. 2009 18:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Peter2 10 Unities + Antwort hilfreich

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.




Sehen Sie sich das Profil von Peter2 an!   Senden Sie eine Private Message an Peter2  Schreiben Sie einen Gästebucheintrag für Peter2

Beiträge: 3701
Registriert: 15.10.2003

Win 10/64 Pro
AutoCAD MAP 3D 2018
BricsCAD 22

erstellt am: 23. Okt. 2009 19:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von MZjochen an!   Senden Sie eine Private Message an MZjochen  Schreiben Sie einen Gästebucheintrag für MZjochen

Beiträge: 18
Registriert: 14.02.2006

ACAD 2010, WIN XP/Vista

erstellt am: 23. Okt. 2009 20:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Peter2 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz