| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo | | |  | Besichtigung der MAIT.Cloud in Frankfurt | 19.11.2025, eine Veranstaltung am 19.11.2025
|
Autor
|
Thema: Variablenwerte vergleichen (928 mal gelesen)
|
Tom R Mitglied Technischer Zeichner
 
 Beiträge: 275 Registriert: 02.11.2003
|
erstellt am: 06. Jun. 2011 12:30 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen! Lange nichts geschrieben. Wir sind jetzt vermehrt in der dritten Dimension unterwegs. Jetzt muss ich nach langer Zeit mal wieder ein bestehendes Makro für ME10 ändern und habe dabei ein Problem: Wir haben mit "READ_FILE ..." Variablen belegt. Ich muss nun von 8 Variablen die mit dem größten Wert herausfinden. Die betreffenden Werte können entweder (alle) aus Zahlen oder (alle) aus Buchstaben bestehen, was das Ganze recht kompliziert macht. Die Buchstaben brauche ich nicht zu vergleichen, da reicht es, den Wert der letzten belegten Variable zu übernehmen (in unserem Fall: <>'Null'). Dafür muss ich aber die Werte unterscheiden können und da hapert's schon. Außerdem habe ich festgestellt, dass ein Größenvergleich (Var1 > Var2) nicht klappt, vermutlich, weil die Werte für's System nicht numerisch sind? Kann mir da jemand die entscheidenden 2 Tipps geben? 1. Wie stelle ich fest, ob eine Variable einen numerischen Wert hat? 2. Wie kann ich diese dann größenmäßig vergleichen (auch zweistellige Werte)? Vielen Dank schon mal für's Nachdenken. Viele Grüße Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000 Konstruktion von Sondermaschinen, Montageautomaten, Meß- und Prüfeinrichtungen, Vorrichtungen und Produktentwicklung mit Creo Elements/Direct Modeling 20.6, AdvancedDesign, Surfacing, Simulate, SolidPower, ModelManager auf HP ZBook Fury 16 G9, Windows 10 Pro 64
|
erstellt am: 06. Jun. 2011 12:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom R
|
Tom R Mitglied Technischer Zeichner
 
 Beiträge: 275 Registriert: 02.11.2003
|
erstellt am: 06. Jun. 2011 13:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo Walter! Danke für die Antwort, aber ich glaube, wir schreiben da aneinander vorbei: Das normale ME10 OSDD 2006 nutzt, glaube ich, kein Lisp? Ich schätze, ich habe dich mit meiner Einleitung verwirrt? Trotzdem Danke für die Mühe Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSausGE Mitglied Programmierer
 
 Beiträge: 127 Registriert: 29.01.2004
|
erstellt am: 06. Jun. 2011 15:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom R
Hallo Tom, versuche es mal damit: define test1 local n1 local n2 local n3 local n4 let n1 "123" let n2 "567" let n3 "abc" let n4 987 if (TYPE n4=NUMBER) { Testet auf Nummernwert TYPE n4=STRING => testet auf character} display ("num = "+(str n4)) else display ("char = "+(str n4)) if ((num n1) > (num n2)) display (n1) else display (n2) end_if end_define
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
friedhelm at work Mitglied Techniker Aluminium Profile
  
 Beiträge: 913 Registriert: 01.04.2003 Creo Elements Direct /Drafting 17+20.x ui classic-Tablett + Ribbon, Modeling 17-20.0,.2,.4,.5 Lizenz auf USB-Netzwerkadapter PE-Express 8 Win 10 Enterprise 64 @work Win 10 Pro 64 @home Notepad++,IrfanView,eDrawings, ....
|
erstellt am: 06. Jun. 2011 17:21 <-- editieren / zitieren --> Unities abgeben:          Nur für Tom R
Hallo Tom, 1. Wie stelle ich fest, ob eine Variable einen numerischen Wert hat? DISPLAY (TYPE (VAL "abc")) liefert als Antwort MACRO DISPLAY (TYPE (VAL "123")) liefert als Antwort NUMBER Achtung: DISPLAY (TYPE (VAL "12a")) liefert als Antwort auch NUMBER aber du sagst ja das das nicht der Fall sein kann. 2. Wie kann ich diese dann größenmäßig vergleichen (auch zweistellige Werte)? Wenn du die Variable die ja ein String ist mit VAL in Zahlen wandelst funktioniert der Grössenvergleich. ((VAL Var1) > (VAL Var2)) Vieleicht wäre es am einfachsten mit dem READ_FILE gar nicht erst 8 Variablen zu belegen, sondern den Check "String oder Zahl" und den Zahlenvergleich im LOOP während des Einlesens zu erledigen. ------------------ Gruss Friedhelm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tom R Mitglied Technischer Zeichner
 
 Beiträge: 275 Registriert: 02.11.2003
|
erstellt am: 07. Jun. 2011 13:46 <-- editieren / zitieren --> Unities abgeben:         
Hallo ihr zwei! Herzlichen Dank. Es hat ein wenig Fummelei bedeutet, aber mit Hilfe des "num" habe ich das Problemchen dann gelöst. Vielen Dank auch dir, Friedhelm, aber eine Lösung reichte mir. Zur Zeit deines Posts war ich fast fertig. Übrigens brauche ich aber alle Variablen, da das meine Revisionsstände sind. Die wurden früher in Buchstaben angegeben, dann in Zahlen und jetzt, wenn nicht mehr alle Stände in die Schriftkopffelder passen, werden sie ab- statt aufsteigend eingetragen... Viele Grüße Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |