Arrays y punteros

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 2004.1 (Modificado)


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.

Miremos este ejemplo:

   If ((0<atNombres)&(atNombres<Size of array(atNombres))
         ` Si es posible, seleccione el elemento siguiente al elemento seleccionado
      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:

      ` Método de proyecto SELECCIONAR SIGUIENTE ELEMENTO 
      ` (Puntero) SELECCIONAR SIGUIENTE ELEMENTO
      `  ( -> Array ) SELECCIONAR SIGUIENTE ELEMENTO

   C_POINTER ($1)

   If ((0<$1->)&($1-><Size of array($1->))
      $1->:=$1->+1 ` Si es posible, seleccione el elemento siguiente del elemento seleccionado
   End if

Luego, puede escribir:

   SELECCIONAR SIGUIENTE ELEMENTO (->atNombres)
      ` ...
   SELECCIONAR SIGUIENTE ELEMENTO (->asCodigosPostales)
      ` ...
   SELECCIONAR SIGUIENTE ELEMENTO (->aiIDRegistros)
      ` ... y así sucesivamente

El siguiente método de proyecto devuelve la suma de todos los elementos de un array numérico (Entero, Entero largo, o real):

      ` Suma Array
      ` Suma Array ( Puntero)
      ` Suma Array ( -> Array )

   C_REAL ($0)

   $0:=0
   For ($vlElem;1;Size of array($1->))
      $0:=$0+$1->{$vlElem}
   End for

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:

      ` MAYUSCULAS ARRAY
      ` MAYUSCULAS ARRAY ( Puntero )
      ` MAYUSCULAS 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

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.

Ver también

Arrays, Arrays y el lenguaje 4D.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente