Inserção de dado em uma posição especifica de Array

Boa tarde, Estou mexendo com a manipulação de um array e me surgiu a necessidade de inserir informações em posições especificas do Array, empurrando automaticamente os registros para frente. O que encontrei até o momento ajuda bastante, que é utilizar o AADD para criar um ultimo registro vazio, então usar a AINS para mover todos e abrir o espaço na posição desejada, para só então adicionar a informação.

É melhor que fazer os reposicionamentos na mão? Sim!

Mas será que já não existe alguma função pronta para isso?

*Exemplo de como eu resolvi:

Static Function fAddInX(aRetorno,nPos,aInfo)
    //aRetorno     = Array recebido que passará por todo o processo e será retornado
    //nPos        = Posição em que a informação deve ser colocada 
    //aInfo        = Um vetor com todas as informações a se colocar na posição desejada

    //Adiciono uma linha a mais no array
    AADD(aRetorno,NIL)
    //Posiciono um valor NIL na posição desejada
    aIns(aRetorno,nPos)
    //Coloco a informação na linha correta
    aRetorno[nPos] := aInfo

Return aRetorno

Minha fonte para encontrar essas funções de manipulação de dados é esta.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags array advpl ou faça a sua própria pergunta.