Puede pasar un array como parámetro a un comando 4D o a la rutina de un plug-in 4D. Por el contrario, no puede pasar un array como parámetro a un método de usuario. La alternativa es pasar un puntero al array como parámetro del método.
Nota: puede pasar arrays de proceso e interproceso como parámetros, pero no arrays locales.
Estos son algunos ejemplos.
If((0<atNombres)&(atNombres<Size of array(atNombres))
atNombres:=atNombres+1
End if
Si necesita hacer lo mismo para 50 arrays diferentes, puede evitar escribir lo mismo 50 veces, utilizando el siguiente método de proyecto:
C_POINTER($1)
If((0<$1->)&($1-><Size of array($1->))
$1->:=$1->+1
End if
Luego, puede escribir:
SELECCIONAR SIGUIENTE ELEMENTO(->atNombres)
SELECCIONAR SIGUIENTE ELEMENTO(->asCodigosPostales)
SELECCIONAR SIGUIENTE ELEMENTO(->aiIDRegistros)
- El siguiente método de proyecto devuelve la suma de todos los elementos de un array numérico (Entero, Entero largo, o real):
C_REAL($0)
$0:=0
For($vlElem;1;Size of array($1->))
$0:=$0+$1->{$vlElem}
End for
Nota: desde 4D v13, puede utilizar la función Sum para efectuar la suma de los elementos de un array numérico.
Luego, puede escribir:
$vlSum:=Suma Array(->arSalarios)
$vlSum:=Suma Array(->aiDefectCounts)
$vlSum:=Suma Array(->alPoblacion)
• El siguiente método de proyecto pasa a mayúsculas todos los elementos de un array alfa o texto:
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
Luego, puede escribir:
MAYUSCULAS ARRAY(->atTemas)
MAYUSCULAS ARRAY(->asApellidos)
La combinación de arrays, punterors, y estructuras de bucles, tales como For... End for, le permite escribir muchos métodos de proyecto útiles para manejar arrays.