-> Hier kostenlos registrieren
Hallo!
Ich bin immer noch unzufrieden mit der Definition von Arrays mit PC WorX.
Und zwar scheint es mir die einzige Möglichkeit zu sein so ein Array zu definieren:
Unter Datentypen:
Das stellt nun den globalen Buffer dar.
Jetzt habe ich 6 Sensoren und die werden auf dem Index 0-5 reingelegt.
6-9 sind somit undefiniert und ich möchte sie Aufräumen.
Das kann ich jetzt so machen:
Jetzt stellt sich aber raus, dass ich 12 Sensoren habe. Nun muss ich das ganze Projekt nach solchen FOR-Schleifen absuchen wo das "alte" 10 drinnensteht. SIZEOF geht ja nicht.
Kann man es so irgendwie definieren:
Oder wie löst man das besser?
Dynamsiche Arrays will ich ja eh nicht, aber wenigstens eine "schnelle" Möglichkeit die Arraylänge anzupassen.
Ich bin immer noch unzufrieden mit der Definition von Arrays mit PC WorX.
Und zwar scheint es mir die einzige Möglichkeit zu sein so ein Array zu definieren:
Unter Datentypen:
Code:
TYPE
T_DEVICES : ARRAY[0..9] OF T_SENSOR;
END_TYPE
Das stellt nun den globalen Buffer dar.
Jetzt habe ich 6 Sensoren und die werden auf dem Index 0-5 reingelegt.
6-9 sind somit undefiniert und ich möchte sie Aufräumen.
Das kann ich jetzt so machen:
Code:
FOR istpostion < 10 DO
(* clean devices[istposition] *)
END_FOR;
Jetzt stellt sich aber raus, dass ich 12 Sensoren habe. Nun muss ich das ganze Projekt nach solchen FOR-Schleifen absuchen wo das "alte" 10 drinnensteht. SIZEOF geht ja nicht.
Kann man es so irgendwie definieren:
Code:
MAXSENSORS : INT := 10;
TYPE
T_DEVICES : ARRAY[0..MAXSENSORS - 1] OF T_SENSOR;
END_TYPE
FOR istpostion < MAXSENSORS DO
(* clean devices[istposition] *)
END_FOR;
Oder wie löst man das besser?
Dynamsiche Arrays will ich ja eh nicht, aber wenigstens eine "schnelle" Möglichkeit die Arraylänge anzupassen.
Zuletzt bearbeitet: