Arrays: creación, acceso, inclusión, eliminación y ordenación
Combina operaciones distinguiendo desplazamiento, tamaño y copia.
Descripción general
Las posiciones empiezan en 1. AIns desplaza sin cambiar tamaño y descarta el último elemento; ampliar antes con ASize para conservarlo. ADel desplaza a izquierda y deja Nil al final sin reducir tamaño; reducir después cuando corresponda. La ficha ASize documenta retorno Nil: no asignarlo al array. ASort modifica la referencia recibida; usar AClone antes para conservar estructura original. El ejemplo combina operaciones documentadas en las fichas relacionadas. (TOTVS, s.f., refs. 1–5)
Retorno
No hay retorno único: se trata de un flujo compuesto.
Ejemplo comentado
#Include "Protheus.ch"
User Function EdArrays()
Local aValores := {30, 10, 20}
Local aCopia
// Insertar sin perder ultimo elemento.
ASize(aValores, Len(aValores) + 1)
AIns(aValores, 2)
aValores[2] := 15
ADel(aValores, 1)
ASize(aValores, Len(aValores) - 1)
aCopia := AClone(aValores)
ASort(aCopia)
ConOut(cValToChar(aValores[1]))
ConOut(cValToChar(aCopia[1]))
Return NilOriginal final {15, 10, 20}; copia ordenada {10, 15, 20}; salidas esperadas 15 y 10. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- Comprobar límites antes de acceder. Distinguir clonación de arrays de copia de objetos y definir comparador coherente para estructuras heterogéneas.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.