4D v16.3

Arrays y punteros

Inicio

 
4D v16.3
Arrays y punteros

Arrays y punteros  


 

 

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

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:

  ` 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

 
PROPIEDADES 

Producto: 4D
Tema: Arrays

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)