PC WorX und Arrays

Portisch

Level-1
Beiträge
149
Reaktionspunkte
3
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:
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:
Bei Datentypen gehen leider keine Konstanten. Aber du kannst bei den For-Schleifen eine globale Variable verwenden, wo du die maximale Größe angibst. Musst dann halt immer den Dytentyp verändern und halt den Wert der globalen Variable.
 
Zurück
Oben