| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Fehlermeldung (408 mal gelesen)
|
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001 Windows 7, Intel Core 2 Duo, P8600 AutoCAD, AutoCAD MEP, Revit MEP Navisworks
|
erstellt am: 04. Jun. 2003 11:07 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, habe nachfolgenden Bereich in einem Lispprogramm vor einigen Jahren geschrieben (noch unter R14). (Defun DKL () (Setq KL (Getstring (Strcat "\nKanallänge <"VKL">: "))) (If (/= KL "") (Setq VKL KL)) (Setq KL VKL) (Setq KL (Atof KL)) (If (<= KL 0) (And (Princ "\nWert muss positiv und ungleich Null sein.") (DKL)) );If ) Seitdem habe ich mich mit Lisp nicht beschäftigt. Unter R2000 bekomme ich nachfolgende Fehlermeldung: ; Fehler: Fehlerhafter Argumenttyp: stringp nil Offensichtlich liegt es an der Zeile mit Getstring und Strcat. Wo ist hier der Fehler begraben. Kann mir jem helfen. Schöne Grüße Waldemar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
axeld Mitglied Projektingenieur/CAD-Administrator
Beiträge: 267 Registriert: 18.11.2002
|
erstellt am: 04. Jun. 2003 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
|
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001 Windows 7, Intel Core 2 Duo, P8600 AutoCAD, AutoCAD MEP, Revit MEP Navisworks
|
erstellt am: 04. Jun. 2003 12:22 <-- editieren / zitieren --> Unities abgeben:
|
Dabrunz Mitglied
Beiträge: 127 Registriert: 28.05.2003
|
erstellt am: 04. Jun. 2003 12:39 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
Tag Waldemar. Dein Variable [b]VKL[b] ist nicht als STRING initialisert. Es ist auch nicht klar, wo denn ein Wert herkommen soll - ist ja 'ne globale Variable. Außerdem arbeit die Funktion ohne brauchbare Rückgabe. Meine Empfehlung: Code:
; ;*************************************************************************** ;**** **** ;**** (get-positive-number <prefix> <default> <postfix> ) **** ;**** **** ;**** <prefix> ::= STRING - 1. Teil der User-Anfrage **** ;**** <default> ::= REAL/STRING - positiver Vorgabe-Wert **** ;**** <postfix> ::= STRING - Abschluss der User-Anfrage **** ;**** **** ;**** Rückgabe: REAL - Abstand oder Länge **** ;**** **** ;**** Aufforderung zu Eingabe einer positiven Zahl, auch abgreifbar **** ;**** **** ;*************************************************************************** ;**** **** ;**** BEISPIEL: **** ;**** **** ;**** (:get-positve-number "\nGrabStein-Länge? <" 12.5 "> ") **** ;**** **** ;**** Befehl: **** ;**** GrabStein-Länge? <12.5> <ENTER> **** ;**** -> 12.5 **** ;**** **** ;**** Befehl: **** ;**** GrabStein-Länge? <12.5> 38.45678 <ENTER> **** ;**** -> 38.4568 **** ;**** **** ;*************************************************************************** ; (defun get-positive-number (#msg-prefix #default-value #msg-postfix) ;** no : ZERO, NEGATIVE, 3D (initget (+ 2 4 64)) (cond ((getdist ;** zusammen gesetzte Eingabe-Aufforderung (strcat #msg-prefix (str-or-empty #default-value) (str-or-empty #msg-postfix) ) ) ); end Alternative0: Es wurde eine Brauchbare Zahl eingegeben ;**** ansonsten wird der <#default-value> wieder zurück gegeben, **** ;**** allerdings zuerst definitiv in eine REAL-Zahl gewandelt. **** ((atof(str-or-empty #default-value))) ) ) ; ;*************************************************************************** ;**** (str-or-empty <Zahl> ) **** ;*************************************************************************** ;**** - wandelt Zahl in STRING (m. fester Anz. Nachkommastellen) ODER **** ;**** - gibt einen eigegebenen STRING unverändert zurück ODER **** ;**** - erzeugt den Standard-Wert "" **** ;*************************************************************************** ; (defun str-or-empty (#zahl / ) (cond ((numberp #zahl) (rtos #zahl 2 4)) ((='STR (type #zahl)) #zahl) ('T "") ) ); end DEFUN <str-or-empty>
Ich denke mal, damit kann eine ganz brauchbare Lösung gebaut werden. Achim Dabrunz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |