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 dient.
Sie können als Parameter Prozess- und Interprozess-Arrays, sowie Prozess- und lokale Arrays übergeben.
- Wir gehen von folgendem Beispiel aus:
If((0<atNames)&(atNames<Size of array(atNames))
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:
C_POINTER($1)
If((0<$1->)&($1-><Size of array($1->))
$1->:=$1->+1
End if
Schreiben Sie nun:
SELECT NEXT ELEMENT(->atNames)
SELECT NEXT ELEMENT(->asZipCodes)
SELECT NEXT ELEMENT(->alRecordIDs)
- Folgende Projektmethode gibt die Summe aller Elemente eines numerischen Array zurück (Ganzzahl, Lange Ganzzahl, Zahl):
C_REAL($0)
$0:=0
For($vlElem;1;Size of array($1->))
$0:=$0+$1->{$vlElem}
End for
Hinweis: Seit 4D v13 können Sie einfach die Funktion Sum verwenden, um die Summe von Elementen in einem numerischen Array zu berechnen.
$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ß):
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. ARRAY TO LIST, ergibt viele kleine nützliche Projektmethoden zum Verwalten von Arrays.