Saltar al contenido principal
Versión: 20 R7 BETA

ARRAY POINTER

ARRAY POINTER ( nombreArray ; tamaño {; tamaño2} )

ParámetroTipoDescripción
nombreArrayArrayNombre del array
tamañoIntegerNúmero de elementos en el array o Número de filas si se especifica tamaño2
tamaño2IntegerNúmero de columnas en un array bidimensional

Descripción

El comando ARRAY POINTER crea o redimensiona un array de elementos de tipo Puntero en memoria.

  • El parámetro nombreArray es el nombre del array.
  • El parámetro tamaño es el número de elementos en el array.
  • El parámetro tamaño2 es opcional; si se especifica tamaño2, el comando crea un array bidimensional. En este caso, tamaño especifica el número de filas y tamaño2 especifica el número de columnas en cada array. Cada fila en un array bidimensional puede tratarse como un elemento y como un array. Esto significa que mientras trabaja con la primera dimensión del array, puede utilizar otros comandos de array para insertar y borrar arrays enteros en un array bidimensional.

Cuando aplica ARRAY POINTER a un array existente:

  • Si agranda el tamaño del array, los elementos existentes no son modificados, y los nuevos elementos se inicializan en un puntero nulo. Esto significa queal aplicar Nil a uno de estos elementos devuelve Verdadero.
  • Si reduce el tamaño del array, se pierden los últimos elementos borrados del array.

Ejemplo 1

Este ejemplo crea un array de proceso de 100 elementos de tipo Puntero:

 ARRAY POINTER(apValores;100)

Ejemplo 2

Este ejemplo crea un array local de 100 filas de 50 elementos de tipo Puntero:

 ARRAY POINTER($apValores;100;50)

Ejemplo 3

Este ejemplo crea un array interproceso de elementos de tipo Puntero y asigna a cada elemento al que apunta a la tabla cuyo número es el mismo del elemento. El tamaño del array es igual al número de tablas en la base de datos. En el caso de suprimir una tabla, la linea devolverá Nil

 ARRAY POINTER(◊apValores;Last table number)
 For($vlElem;1;Size of array(◊apValores);1;-1)
    If(Is table number valid($vlElem))
       ◊apValores{$vlElem}:=Table($vlElem)
    End if
 End for