| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: Indizierbare Variablen (886 / mal gelesen)
|
ME10-Faultier Mitglied
Beiträge: 25 Registriert: 30.03.2015 Direct Drafting 18.1
|
erstellt am: 13. Sep. 2016 14:05 <-- editieren / zitieren --> Unities abgeben:
Hallo in die Runde! In einem Makro habe ich die Variablen index_jt_1 index_jt_2 index_jt_3 index_jt_4 index_jt_5 index_jt_6 index_jt_7 index_jt_8 index_jt_9, die jeweils den Wert 'J' oder 'N' zugewiesen bekommen. Damit ich nicht alles 9x programmieren muß bei Abfragen, möchte ich die Variablen in einer WHILE-Schleife von 1 - 10 abfragen: Code: LET zaehl_er 1 WHILE ( zaehl_er < 10 ) IF ( ( 'index_jt_' + ( TRIM ( STR zaehl_er ) ) ) = 'J' ) ... END_IF END_WHILE
Das funktioniert aber nicht. Ich dachte immer, daß ich in den Variablennamen die Zahlen automatisiert bearbeiten könne. Bin ich da auf dem Holzweg? Und wie kann man das sonst lösen? Igrendwie stehe ich gerade auf dem Schlauch. Vielen Dank schon einmal im voraus für Eure Hilfe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Ehrenmitglied V.I.P. h.c. Frank und Frei
Beiträge: 2143 Registriert: 12.12.2000
|
erstellt am: 13. Sep. 2016 21:50 <-- editieren / zitieren --> Unities abgeben: Nur für ME10-Faultier
|
thomas.h Mitglied Konstrukteur Maschinenbau
Beiträge: 222 Registriert: 13.04.2001 ME10 13.20B SWX 2015 SP5.0 WIN 7 64-bit
|
erstellt am: 14. Sep. 2016 13:13 <-- editieren / zitieren --> Unities abgeben: Nur für ME10-Faultier
Anderer Ansatz: LET zaehl_er 0
REPEAT LET zaehl_er (zaehl_er + 1) LET index (VAL ('index_jt_' + STR zaehl_er)) IF (index = 'J') display 'Variable = J' ELSE display 'Variable = N' END_IF UNTIL (zaehl_er = 9) Gruß Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ME10-Faultier Mitglied
Beiträge: 25 Registriert: 30.03.2015 Direct Drafting 18.1
|
erstellt am: 30. Sep. 2016 09:17 <-- editieren / zitieren --> Unities abgeben:
Danke an euch Beibe. Es wird jetzt eine Mischung aus Euren beiden Vorschlägen: die Inhalte der Variablen index_jt_1 ... 0 werden einer anderen Variable zugewiesen und dann in eine logische Tabelle eingetragen, mit der dann weitergearbeitet wird. Da ich bisher noch nie logische Tabellen verwendet habe, wollte ich ursprünglich nur mit Thomas seiner Variante weiterarbeiten. Das Zuweisen der Werte von index_jt_1 ... 9 an andere Variablen funktionierte damit, nicht jedoch das Zuweisen an index_jt_1 ... 9, wenn man eine Variable für 1 ... 9 in den Namen einbaut. Dann erkennt er den Variablenbezeichner immer nur als zusammengesetzten String, nicht jedoch als Variablennamen. Darum habe ich nun doch mit den logischen Tabellen angefangen. Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neuimforum Mitglied
Beiträge: 23 Registriert: 21.09.2004
|
erstellt am: 09. Jan. 2017 16:46 <-- editieren / zitieren --> Unities abgeben: Nur für ME10-Faultier
Hallo, Du müsstest mit execute_string arbeiten um den Befehl, den Du in den eine Variable als Strein schreibt dann auszuführen. z.B. Code: LET Stringvariable ('LET Index_'+(STR Zaehler)+' '+Inhalt) EXECUTE_STRING Stringvariable
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |