2.21 :index()
Der Dialog Manager bietet die Möglichkeit, ein assoziatives Array in seiner Gesamtheit zu durchlaufen. Mit der Methode :index() kann der Index aus der inneren Ordnung berechnet werden.
Achtung
Die innere Ordnung der assoziativen Arrays dient nur zur internen Verwaltung. Diese innere Ordnung kann sich ändern. Sollten Sie eine Ordnung auf den Daten benötigen, was dann im allgemeinen auf einen Missbrauch der assoziativen Arrays schließen lässt, so müssen sie diese selbst berechnen.
Definition
anyvalue :index
(
attribute Attribute input,
integer InternalIndex input
)
Parameter
- attribute Attribute input
- In diesem Parameter wird der Name des assoziativen Feldes angegeben, dessen Inhalt abgefragt werden soll.
- integer InternalIndex input
- In diesem Parameter wird der aktuell zu erfragende Index aus dem Feld angegeben. Bitte beachten Sie, dass dieser Index sich nach Lösch- oder Zuweisungsaktionen in dem Feld ändern kann.
Rückgabewert
- 0
- Element nicht im Feld enthalten
- sonst
- Index des Elementes im assoziativen Feld
Objekte mit dieser Methode
Alle Objekte, die benutzerdefinierte Attribute haben können.
Beispiel
window WMain
{
integer Channel [ string ];
.Channel [ "RTL " ] := 65;
.Channel [ "ARD " ] := 14;
.Channel [ "ZDF " ] := 11;
}
rule void PrintStation()
{
variable integer I;
for I := 1 to WMain.itemcount[ .Channel ] do
print WMain.Channel[ WMain:index(.Channel, I) ];
endfor
}
In der Schleife wird das Feld von 1 bis zur Anzahl der Einträge durchlaufen, gemäß der inneren Ordnung. Im Schleifeninneren wird der Index berechnet (WMain:index(.Channel, I )) und mit diesem dann das assoziative Array .Channel
indiziert.
Siehe auch
Kapitel „Arbeiten mit assoziativen Arrays“ im Handbuch „Benutzerdefinierte Attribute und Methoden“