Version 2004.1 (Geändert)
Sie können ein Array als Parameter für einen 4D Befehl oder eine Routine eines 4D Plug-In übergeben, jedoch nicht für eine Benutzermethode. Dafür müssen Sie dem Array einen Zeiger übergeben, der dann für die Benutzermethode als Parameter fungiert.
Sie können als Parameter Prozess- und Interprozess-Arrays, sowie Prozess- und lokale Arrays übergeben.
Beispiele
Wir gehen von folgendem Beispiel aus:
If ((0<atNames)&(atNames<Size of array(atNames)) ` Wählt, falls möglich, das nächste Element nach dem ausgewählten Element atNames:=atNames+1 End if
Müssen Sie denselben Vorgang für 50 verschiedene Arrays in mehreren Formularen ausführen, vermeiden Sie mit nachfolgender Methode, 50 Mal dasselbe zu schreiben:
` Projektmethode SELECT NEXT ELEMENT ` SELECT NEXT ELEMENT ( Zeiger ) ` SELECT NEXT ELEMENT ( -> Array ) C_POINTER ($1) If ((0<$1->)&($1-><Size of array($1->)) $1->:=$1->+1 ` Wählt, falls möglich, das nächste Element nach dem ausgewählten Element End if
Schreiben Sie nun:
SELECT NEXT ELEMENT (->atNames) ` ... SELECT NEXT ELEMENT (->asZipCodes) ` ... SELECT NEXT ELEMENT (->alRecordIDs) ` ... usw.
Folgende Projektmethode gibt die Summe aller Elemente eines numerischen Array zurück (Ganzzahl, Lange Ganzzahl, Zahl):
` Array sum ` Array sum ( Pointer ) ` Array sum ( -> Array ) C_REAL ($0) $0:=0 For ($vlElem;1;Size of array($1->)) $0:=$0+$1->{$vlElem} End for
Schreiben Sie nun:
$vlSum:=Array sum (->arSalaries) ` ... $vlSum:=Array sum (->aiDefectCounts) ` .. $vlSum:=Array sum (->alPopulations)
Folgende Projektmethode setzt die Elemente eines Array vom Typ Alphanumerisch oder Text in Kapitälchen (Anfangsbuchstabe groß):
` CAPITALIZE ARRAY ` CAPITALIZE ARRAY ( Pointer ) ` CAPITALIZE ARRAY ( -> Array ) For ($vlElem;1;Size of array($1->)) If ($1->{$vlElem}#"") $1->{$vlElem}:=Uppercase($1->{$vlElem}[[1]])+Lowercase(Substring($1->{$vlElem};2)) End if End for
Schreiben Sie nun:
CAPITALIZE ARRAY (->atSubjects ) ` ... CAPITALIZE ARRAY (->asLastNames )
Die Kombination aus Arrays, Zeigern und Schleifen, wie z.B. For... End for, ergibt viele kleine nützliche Projektmethoden zum Verwalten von Arrays.
Referenz
Arrays und die 4D Programmiersprache, Einführung in Arrays.