11.20 indexat()
Diese Funktion liefert den Index einer Sammlung an einer bestimmten Position. Die erlaubten Positionen gehen von 1 … itemcount() und ermöglichen somit einen Schleifendurchgang durch alle indizierten Werte.
Für Werte des Typs list, refvec und vector ist die Position mit dem eigentlichen Index identisch. Für einen hash-Wert gibt es keine definierte Reihenfolge der gelieferten Indizes. Für matrix-Werte erfolgt die Abbildung der aufsteigenden Positionen auf eine Ordnung, bei der alle (Spalten-)Werte einer Zeile aufsteigend hintereinander folgen.
Die Funktion gibt einen Fehler (fail) zurück falls die Position außerhalb des erlaubten Bereichs liegt oder es sich beim Value-Parameter nicht um eine Sammlung handelt.
Definition
anyvalue indexat
(
anyvalue Value input,
integer Pos input
)
Parameter
- anyvalue Value input
- In diesem Parameter wird die Werteliste angegeben, von welcher der Index erfragt werden soll.
- integer Pos input
- Position, für welche der Indexwert ermittelt werden soll.
Rückgabewert
Indexwert an der als Parameter übergebenen Position.
Beispiel
dialog D
on dialog start
{
variable matrix Matrix := [
[0,0] => "-?-",
[1,1] => "germany",
[1,2] => "berlin",
[2,1] => "france" ];
variable integer Pos;
/* print the Matrix elements [1,1] [1,2] ... [2,2] */
for Pos:=1 to itemcount(Matrix) do
print sprintf("%s : %s", indexat(Matrix, Pos), valueat(Matrix, Pos));
endfor
exit();
}
Siehe auch
Method
C