PC WorX und Arrays

Portisch

Level-1
Beiträge
149
Reaktionspunkte
3
Zuviel Werbung?
-> 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:
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