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“