Main sections
FOREACH
FOREACH ref IN feld[]
...
NEXT
Mit dem FOREACH Befehl kann man schnell und einfach ein Feld durchlaufen und daraus Werte lesen und zurückschreiben.
Dabei wird "ref" je Schleifendurchlauf ein Zeiger (BYREF) auf das nächste Element im Feld zugewiesen.
Man muss "ref" nicht als LOCAL definieren. Das passiert automatisch. Jedoch ist "ref" nach dem zugehörigem "NEXT" nicht mehr gültig.
Mit anderen Befehlen ausgedrückt bedeutet FOREACH in etwa:
FOR i = 0 to BOUNDS(feld[],0)-1
ref = feld[i]
...
feld[i] = ref
NEXT
Beispiel:
// --------------------------------- //
// Project: ForEach
// Make an array of numbers
// Ein Feld von Zahlen
DIMDATA a[], 12,14,15,17
// Enumerate the numbers
// Die Zahlen durchlaufen
FOREACH num IN a[]
a$=a$ + num + ", "
NEXT
PRINT a$, 0,0
// a simple TYPE
// ein einfacher TYPE
TYPE SHOP
milk$
ENDTYPE
// An array-instance of it
// Eine Feld-Instanz davon
LOCAL kmart[] AS SHOP
// Fill with values
// Mit Werten füllen
DIM kmart[3]
kmart[0].milk$ = "fat free"
kmart[1].milk$ = "fatty"
kmart[2].milk$ = "butter"
a$=""
// Enumerate all shops
// Alle shops durchlaufen
FOREACH item IN kmart[]
a$ = a$ + item.milk$ + ", "
NEXT
PRINT a$, 0, 40
SHOWSCREEN
MOUSEWAIT