Arrays: criação, acesso, inclusão, exclusão e ordenação
Combina operações de array sem confundir deslocamento, tamanho e cópia.
Visão geral
Arrays usam posições iniciadas em 1. AIns desloca elementos e conserva o tamanho, descartando o último; aumente antes com ASize quando precisar preservá-lo. ADel desloca à esquerda e deixa Nil no final, sem reduzir o tamanho; reduza depois quando a remoção deva encurtar a lista. ASize é uma instrução sobre o array: a ficha consultada documenta retorno Nil, portanto não atribua seu retorno ao array. ASort modifica a referência recebida; faça AClone antes quando precisar conservar a estrutura original. O exemplo compõe operações já documentadas nas fichas relacionadas. (TOTVS, s.d., refs. 1–5)
Retorno
Não há retorno único: trata-se de um roteiro composto.
Exemplo comentado
#Include "Protheus.ch"
User Function EdArrays()
Local aValores := {30, 10, 20}
Local aCopia
// Insere sem perder o 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 NilLista original final {15, 10, 20}; cópia ordenada {10, 15, 20}; saídas esperadas 15 e 10. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.
- Verificar limites antes do acesso. Distinguir clonagem de arrays de cópia de objetos e definir comparador coerente para estruturas heterogêneas.
- Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.