|   |   | 
  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|   |   | 
  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
  | 
| 
Autor
 | 
Thema:  Rückgabe getstring nicht nil? (2024 mal gelesen)
 | 
 
                        rkauskh Ehrenmitglied V.I.P. h.c. Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
 
  
  
        Beiträge: 2933 Registriert: 15.11.2006 
                         | 
                        
                         
                                                 
                        erstellt am: 07. Mai. 2009 09:01       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Hallo Ich seh's nicht: Code: (setq suffix (getstring "\nSuffix: ")) (if (/= suffix nil) (setq trenner2 "-"))
  Das sollte doch, wenn der User Enter, Leertaste oder RMT drückt, für Suffix nil zurückgeben und somit trenner2 unverändert lassen. trenner2 wird aber immer mit "-" gefüllt.     ------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
    
  
        Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad 
                         | 
                        
                         
                                                 
                        erstellt am: 07. Mai. 2009 09:06       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                        
  hi, du hast wenn suffix ungleich(/=) nil dann trenner "-" also equal oder = ... nil dann trenner "-" mfg heiko Edit mist (setq suffix (getstring "\nSuffix: ")) gibt bei enter llertaste "" zurück... [Diese Nachricht wurde von Dorfy am 07. Mai. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        CADmium Moderator Maschinenbaukonstrukteur
         
 
  
  
        Beiträge: 13533 Registriert: 30.11.2003 . 
                         | 
                        
                         
                                                 
                        erstellt am: 07. Mai. 2009 09:08       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                        
  getstring liefert bei Enter einen Leerstring und nicht nil  also so (or(/=(setq suffix (getstring "\nSuffix: "))"")    (setq suffix "-") )   Um aber auf das Verhalten mit der nil-Rückgabe zu kommen, kann man z.B. solche Funktion einsetzen:
 (defun DT:GETSTRING(MSG)    (or(=(type MSG)'STR)(setq MSG""))        (if(and(not(vl-catch-all-error-p                                   (setq RETURN(vl-catch-all-apply  'getstring (list MSG)))               )                      )           (=(type RETURN)'STR)           (/= RETURN "")       )      RETURN                       (prompt "\nAbbruch durch Anwender.")    )     ) ist natürlich noch ausbaubar mit MSG-Analyse .. ist in <> ein Vorgabewert mitgegeben , dann setze diesesn usw. ------------------          - 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  | 
                        
                        rkauskh Ehrenmitglied V.I.P. h.c. Dipl.-Ing. (FH) Versorgungstechnik, Master Eng. IT-Security & Forensic
 
  
  
        Beiträge: 2933 Registriert: 15.11.2006 
                         | 
                        
                         
                                                 
                        erstellt am: 07. Mai. 2009 09:20       <-- editieren / zitieren -->           Unities abgeben:           
                        
  Danke euch beiden, ich wußte es ist simpel. Herzlichen Dank auch wieder an Autodesk für die Hilfedatei.   Zitat: Return Values The string entered by the user; otherwise nil, if the user pressed ENTER without typing a string.
 
  ------------------ MfG RK 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: 07. Mai. 2009 09:24       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                        
  oder (weil man's ja öfter braucht): Code: ... (setq suffix (get-nil-string "\nSuffix: ")) ... (defun get-nil-string (anfrage / return)   (if (= (setq return (getstring anfrage)) "")     nil     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  | 
                        
                        THE_ONE Mitglied Student, Alter:23
   
  
        Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2007,(Mechanical) 
                         | 
                        
                         
                                                 
                        erstellt am: 17. Jun. 2009 20:23       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                           Zitat: Original erstellt von CADmium:Um aber auf das Verhalten mit der nil-Rückgabe zu kommen, kann man z.B. solche Funktion einsetzen: (defun DT:GETSTRING(MSG)    (or(=(type MSG)'STR)(setq MSG""))        (if(and(not(vl-catch-all-error-p                                   (setq RETURN(vl-catch-all-apply  'getstring (list MSG)))               )                      )           (=(type RETURN)'STR)           (/= RETURN "")       )      RETURN                       (prompt "\nAbbruch durch Anwender.")    )     ) ist natürlich noch ausbaubar mit MSG-Analyse .. ist in <> ein Vorgabewert mitgegeben , dann setze diesesn usw.[/B] 
  Kann man mit dieser Funktion zwischen einem enter und einem leeren String unterscheiden? MFG THE_ONE Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP  | 
                        
                        CADmium Moderator Maschinenbaukonstrukteur
         
 
  
  
        Beiträge: 13533 Registriert: 30.11.2003 . 
                         | 
                        
                         
                                                 
                        erstellt am: 17. Jun. 2009 20:25       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                             Zitat: Original erstellt von THE_ONE:  Kann man mit dieser Funktion zwischen einem enter und einem leeren String unterscheiden?MFG THE_ONE 
  Wie gibst du einen Leeren String ein ? Geht's dir um eine getstring-Auswertung, oder was ganz anderes? Um ein Enter zu simulieren oder so kannst du (chr 13)   (oder so ?!) verwenden. Man kann mit (initget ..) auch eine Leerstringeingabe verbieten .. ------------------          - 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  | 
                        
                        THE_ONE Mitglied Student, Alter:23
   
  
        Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2007,(Mechanical) 
                         | 
                        
                         
                                                 
                        erstellt am: 17. Jun. 2009 23:15       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                        
  Also ich will das wenn ich  enter drücke das er nil zurück liefert! Und wenn ich  "" eingebe soll es eben ein leerer String sein und sonst halt normaler Text. Nur derzeit, da das getstring nicht das macht was es soll, ist ein enter gleich einem leeren String. Und das sollte nicht so sein. Das wäre das gleiche wie wenn ich bei einem getint 0 zurückbekommen würde bei enter. Daher wäre es fein wenn es ein getstring geben würde das einfach genau das macht was es soll.     [Diese Nachricht wurde von THE_ONE am 17. Jun. 2009 editiert.] 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: 18. Jun. 2009 00:09       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                         | 
                       
   
 | | Anzeige: | Infos zum Werbeplatz >> |  BlechCAD 3D CAD APP für Blechverarbeitung Metallbau- Fassadenbau- Planer, die aus fertigen Ansichten und Schnitten von Blechen, die Abwicklung zu bearbeiten haben, für eine NC-Software und Kantbankdaten.
Speziell für Aufträge die immer verschiedene Blecharten und Abmessungen aufweisen.
Blechabwicklungen für die Fertigung erstellen in 2-3 Mi
  |  
  | 
 
                        CADmium Moderator Maschinenbaukonstrukteur
         
 
  
  
        Beiträge: 13533 Registriert: 30.11.2003 . 
                         | 
                        
                         
                                                 
                        erstellt am: 18. Jun. 2009 08:09       <-- editieren / zitieren -->           Unities abgeben:            Nur für rkauskh  
                        
  und wenn ich dann """ eingebe ?       . Irgendwie macht das IMHO keinen Sinn, oder der ONE erklärt mir da mal ..  evtl. hilft grread weiter ... hier mal was ganz Frakmentales:
 (defun GETSTRINGSPEZIAL( / STRING KEYS)       (while (/=(cadr KEYS)13)     (while (/=(car(setq KEYS(grread nil (+ 2 4 8) 0)))2))     (cond       ((=(cadr KEYS) 8)        (setq STRING (cdr STRING))        (princ (strcat "\r" (apply 'strcat (reverse STRING))" "))       )       ;;evtl. andere Sondertasten ect.       ('T(setq STRING (cons (chr(cadr KEYS)) STRING)))     )     (princ (strcat "\r" (apply 'strcat (reverse STRING))))   )   (apply 'strcat (reverse STRING)) )  ------------------        - 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  |