TIA Variablen automatisch in ein Array schreiben

gooddftt

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ist es irgendwie möglich, dass ich die Variablen automatisch in ein Array schreiben kann? Also ich habe z.B. vielen Variablen var1 var2 var3 usw. und möchte ich als array[1]=var1 usw. deklarieren, will aber nicht alles manuell machen.....

Vielen Dank!
 
Vielleicht?
Mehr könnte man vermutlich sagen, wenn Du uns mitteilst mit welchen Geräten und welcher Software Du arbeitest, was Du mit "Variablen automatisch in ein Array schreiben" meinst, und wozu das Ganze gut sein soll. Vielleicht hilft auch ein konkretes Beispiel oder ein Bild, Deine Frage zu verstehen?

Harald
 
Du hast einzelne Variablen vom gleichen Typ und willst sie jetzt in einem Array haben? Momentaufnahmen der aktuellen Variablen machen, in Startwerte kopieren, auf nicht optimiert schalten, eine Schleife per Pointer in neuem DB kopieren und dann wieder retour.
 
Ist die Anzahl an Variablen immer Fest ? Wenn ja könntest du eine Case-Of Anweisung in einer For-Schleife abarbeiten.
Bsp:
FOR AnzahlhlVariablen := ersteVar TO letzteVar BY 1 DO
CASE AnzahlVariablen OF
1:
Array[1] := Var_1;
2:
Array[2] := Var_2;
3:
Array[3] := Var_3;
ELSE
;
END_CASE;
END_FOR;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist die Anzahl an Variablen immer Fest ? Wenn ja könntest du eine Case-Of Anweisung in einer For-Schleife abarbeiten.
Bsp:
FOR AnzahlhlVariablen := ersteVar TO letzteVar BY 1 DO
CASE AnzahlVariablen OF
1:
Array[1] := Var_1;
2:
Array[2] := Var_2;
3:
Array[3] := Var_3;
ELSE
;
END_CASE;
END_FOR;
Was macht das Konstrukt denn?
 
Ist die Anzahl an Variablen immer Fest ? Wenn ja könntest du eine Case-Of Anweisung in einer For-Schleife abarbeiten.
Bsp:
FOR AnzahlhlVariablen := ersteVar TO letzteVar BY 1 DO
CASE AnzahlVariablen OF
1:
Array[1] := Var_1;
2:
Array[2] := Var_2;
3:
Array[3] := Var_3;
ELSE
;
END_CASE;
END_FOR;

Da kannst du ja direkt
Code:
            Array[1] := Var_1;
            Array[2] := Var_2;
            Array[3] := Var_3;

Schreiben. Wozu das Case?

Interessant wäre es wenn man endlich Symbole zur Laufzeit zusammenbauen könnte. Das geht aber derzeit leider nicht.
 
Mein Gedanke war, die Case auf die maximale Array-Größe zu bauen, durch die For-Schleife wird dann nur die benötigte Anzahl übertragen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein Gedanke war, die Case auf die maximale Array-Größe zu bauen, durch die For-Schleife wird dann nur die benötigte Anzahl übertragen
Da die Variablen trotzdem alle vorhanden sein müssten. Brächte ausser einem wohl vernachlässigbaren Zeitgewinn überhaupt nichts
 
Achtung Vermutung:
Weil der OP sich hier nicht wieder äußert was er meint, werfe ich mal noch meine Spekulation in die Runde: der TE will nicht zusätzlich zu den vielen einzelnen Variablen ein Array anlegen und den Inhalt der einzelnen Variablen in das Array kopieren, sondern er will die vielen Variablen durch ein Array ersetzen und will nun automatisch die Verwendungsstellen umverdrahten lassen ...

Vielleicht will er auch was ganz anderes? Hier kommen schon ausgefeilte Programmvorschläge und irgendwann kommt der OP vielleicht doch nochmal und klärt uns auf, daß all unsere Vorschläge für die Tonne sind, weil er was ganz anderes gemeint hat?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
er will die vielen Variablen durch ein Array ersetzen und will nun automatisch die Verwendungsstellen umverdrahten lassen
Sry für die späte Rückmeldung. Aber das ist genau was ich haben will. Benutze gerade TIA 15 bzw. Simotion. Wollte sogar schon ein externen Programm wie Python usw. verwenden, damit die ganze Schreibearbeit / Eintippen wie array[x]=varX irgendwie sparen kann. Ist aber so keine Dauerlösung.... :(
 
var1, var2, var3, var[x].
Das sind nichtssagende Namen.
Und hast du ein grossen Programm erstellt mit diesen Namen-Struktur ?
Ich habe den Gefühl du bist Anfanger mit STEP7.

Ein Tip:
Lerne 'wiederverwendbare code' zu erstellen. Das kann z.B. Instanzen von Funktionsbausteine sein. Wenn du die Funktionsbaustein ändert, z.b. die Variabelstruktur ändert, dann ändert alle Instanzen sich was das eintippen viel reduziert.
 
Sry für die späte Rückmeldung. Aber das ist genau was ich haben will. Benutze gerade TIA 15 bzw. Simotion. Wollte sogar schon ein externen Programm wie Python usw. verwenden, damit die ganze Schreibearbeit / Eintippen wie array[x]=varX irgendwie sparen kann. Ist aber so keine Dauerlösung....
Das ist so ein bisschen widersprüchlich und ich verstehe nicht ob Du nun einmal alles ändern willst oder immer wieder?!
Willst Du nun einmalig var1..X als array umschreiben und willst Du dauernd Programme schreiben die danach nochmal umzuarbeiten sind, dann bietet TIA Suchen und Ersetzen an, auch wenn das ziemlich mickrig funktioniert, wohl für eine einmalige Angelegenheit die einfachste Variante, eben ein wenig Fleißarbeit.

Oder doch einfach nur im Programm einen SCL-Code erstellen der das in jedem Zyklus macht für irgendwas?
Den SCL-Code würde ich dann in Excel erstellen (aber darauf bist Du sicher schon selbst gekommen ?!):
Code:
=VERKETTEN("array[";ZEILE(A1);"]:=var";ZEILE(A1);";")

Aber dauerhaft, so wie @JesperMP bereits angemerkt hat, sinnvolle Bezeichnungen oder gleich von Anfang an richtig schreiben.
 
Zurück
Oben