Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

NEXT nElem2

 

NEXT nElem1

 

RETURN aTab

 

Funciones especiales para manejar Arrays

El operador doble igual ( == ) se utiliza para comparar dos arrays, verificando si son equivalentes. Es decir, si tienen el mismo contenido. Por ejemplo:

LOCAL aTabela1 := { 1, 2, 3 }

LOCAL aLista := { 1, 2, 3 }

LOCAL aTabela2 := aTabela1

 

IF aTabela1 == aTabela2

          // Resultado: .T. (verdadero)

          MSGALERT(“El contenido de los arrays aTabela1 y aTabela2 son iguales”)

ENDIF

 

IF aTabela1 == aLista

          // Resultado: .F. (falso)

          MSGALERT(“El contenido de los arrays aTabela1 y aLista son diferentes”)

ENDIF

 

El AdvPL tiene dos funciones para cambiar las dimensiones de un array existente:

1. ASIZE( <array>, <elementos> )

La función ASIZE() redefine un array ( <array> ) de acuerdo con un nuevo número de elementos ( <elementos> ). Si el nuevo número de elementos es superior al antiguo, nuevos elementos se agregarán, atribuyéndose el valor NIL a estos. Si el nuevo número de elementos es inferior al antiguo, los elementos que estuvieran por encima de este número se retirarán.

2. AADD( <array>, <expresión> )

La función AADD() agrega un nuevo elemento al array ( <array> ) especificado, atribuyéndole el resultado de la expresión ( <expresión> ) especificada. El nuevo elemento será el último del array.

Para incluir o eliminar elementos de un array existente, el AdvPL tiene dos funciones. Al contrario de las funciones AADD() y ASIZE(), estas funciones no modifican las dimensiones del array, pero sí el contenido de sus elementos.

3. ADEL( <array>, <nº del elemento> )

La función ADEL() elimina el elemento del array ( <array> ) definido por el número del elemento ( <nº del elemento> ). Todos los elementos ubicados después del elemento eliminado se mueven una posición a la izquierda. Al último elemento se atribuye el valor NIL.

4. AINS( <array>, <nº del elemento> )

La función AINS() incluye un elemento al array ( <array> ) en la posición definida por el argumento <nº del elemento>. Al nuevo elemento se atribuye el valor NIL. Los elementos ubicados después del elemento incluido se mueven una posición a la derecha y se eliminará el último elemento del array.

Para efectuar operaciones de copia de arrays, el AdvPL tiene dos funciones:

5. ACOPY()

Esta función copia un conjunto o todos los elementos de un array origen a un array destino existente. Si el array origen contiene subarrays, el array destino solamente tendrá referencias a éstas y no copias reales.

6. ACLONE()

Esta función duplica un array origen entero a un nuevo array destino, creando un nuevo array y realmente copiando los valores de los elementos del array origen a los elementos del nuevo array.

 

El orden de los elementos de arrays puede realizarse automáticamente por la función ASORT(). Ésta permite el orden o clasificación de todos los elementos de un array o de un determinado conjunto de estos. El criterio de orden puede especificarse por medio de un bloque de código.

Para ubicar un elemento de un array con un determinado valor, se utiliza la función ASCAN(). Ésta realiza una búsqueda en los elementos del array para ubicar el elemento que contiene un determinado valor especificado por medio de una expresión o bloque de código. Esta función puede buscar todos o solamente un determinado conjunto de los elementos del array. Si se encontrara el valor deseado, la función retorna el índice correspondiente al elemento. En caso contrario, el valor retornado será cero.