Benutzer-Werkzeuge

Webseiten-Werkzeuge


k10:k10.2:k10.2.4:start

10.2.4 Mehrfachauswahl Choose

Die Funktion Choose(..) gibt entsprechend dem Integer-Wert (>=1) der Auswahl den Wert eines seiner Argumente Result_i zurück. Dabei gilt:

  • Ist die Auswahl 1, dann wird Result_1 zurückgegeben.
  • Ist die Auswahl 2, dann wird Result_2 zurückgegeben und so weiter … .
  • Ist die Auswahl kleiner oder gleich 0 oder es existiert kein zur Auswahl passendes Argument, dann wird NULL zurückgegeben.

10.2.4.1 Syntax für die Mehrfachauswahl

Value = Choose ( Choice , Result_1 , Result_2 [ , ... ] ) 

mit den Datentypen:

Value		→	Variant 
Choice	        →	Integer 
Results  	→	Variant 

Der Einsatz der Kontrollstruktur Choose(..) passt zum Beispiel gut zu einer Auswahl bei einer ComboBox oder einer ähnlichen Auswahlkomponente, die über die Eigenschaften Index oder Count verfügen und führt häufig auf die Zahlenfolge {0,1,2,3,…} mit späterer Transformation auf {1,2,3,…}.

Beispiel:

iEndOfLine = Choose(cmboxEndOfLine.Index + 1, gb.Unix, gb.Windows, gb.Mac) 

Die Konstante gb.Unix hat den Wert 1, gb.Windows den Wert 2 und gb.Mac liefert 3.

10.2.4.2 Beispiele für die Mehrfachauswahl Choose

X = 3 
PRINT Choose(X, "eins", "zwei", "drei", "vier") 
drei
X = 3 
PRINT IsNull(Choose(X * 2, "eins", "zwei", "drei", "vier")) 
True 
iMonat = 11 
PRINT Choose(iMonat, "Januar", "Februar", ...,  "November", "Dezember")   
November 

Alternativen für das letzte Beispiel wären die Verwendung der Kontrollstrukturen mit If..Then..Else oder Select..Case oder der Einsatz einer Matrix mit aMatrix = („Januar“, „Februar“, …, „November“, „Dezember“) und der Auswahl über aktMonat = aMatrix[ iMonat + 1 ].

iMonat = 13 
PRINT Choose(iMonat, "Januar", "Februar", ...,  "November", "Dezember") 
NULL 
iMonat = 11 
PRINT Choose(iMonat, "Januar", "Februar", ..., "Oktober") 
NULL 

Die zweite Zeile ersetzt einen IF..Then..Else-Block:

DIM sEnd AS String 
sEnd = Choose(CInt(iJumps < ijName) + 2, " ", "\n")  

Die Relation (iJumps < ijName) liefert die Werte TRUE = -1 oder FALSE = 0. Somit wird der Auswahl-Wert – Wahrheitswert vermehrt um 2 – entweder 1 oder 2. Dem String sEnd wird entweder beim Wert 1 ein Leerzeichen oder aber beim Wert 2 ein gb.NewLine („\n“) zugewiesen.

Download

Die Website verwendet zwei temporäre Session-Cookies. Diese technisch notwendigen Cookies werden gelöscht, wenn der Web-Browser geschlossen wird! Informationen zu Cookies erhalten Sie in der Datenschutzerklärung.
k10/k10.2/k10.2.4/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge