Usina BRGuía AdvPL
Ingresar
← Todos los temas
FUNCIóNPublicado

ACopy

ACopy( <aOrigem>, <aDestino>, [nInicio], [nCont], [nPosDestino] )

Copia elementos de un array hacia otro array de destino compatible.

ArraysMatrizesCópiaFunçõesTDN
01 · DESCRIPCIÓN GENERAL

Descripción general

ACopy() copia elementos de un array de origen hacia un array de destino. Permite definir la posición inicial del origen, la cantidad de elementos copiados y la posición inicial en el destino. A diferencia de AClone(), presupone que el array de destino ya tiene una estructura compatible; no redimensiona automáticamente el destino para viabilizar la copia.

02 · SINTAXIS

Sintaxis

ACopy( <aOrigem>, <aDestino>, [nInicio], [nCont], [nPosDestino] )

Parámetros

aOrigem
ArrayObligatorio

Array de origen desde donde se copiarán los elementos.

aDestino
ArrayObligatorio

Array de destino que recibirá los elementos copiados. Debe tener estructura compatible.

nInicio
NuméricoOpcional

Posición inicial del array de origen desde la cual se copiarán los elementos.

Predeterminado: 1
nCont
NuméricoOpcional

Cantidad de elementos copiados. Si se omite, se considera el array de origen hasta el último elemento.

nPosDestino
NuméricoOpcional

Posición inicial del array de destino donde se grabarán los elementos.

Predeterminado: 1

Retorno

Devuelve aDestino, una referencia al array de destino que recibió los elementos copiados.

03 · EJEMPLO PRÁCTICO

Copia hacia un array preparado

#Define CRLF Chr(13)+Chr(10)

User Function ACopy1()
    Local aEjemplo := {1, 2, {11, 22, 33}}
    Local aCopia := {Nil, Nil, {Nil, Nil, Nil}}
    Local cMensaje := ""

    ACopy(aEjemplo, aCopia)

    cMensaje += "Copia[1] = " + CValToChar(aCopia[1]) + CRLF
    cMensaje += "Copia[2] = " + CValToChar(aCopia[2]) + CRLF
    cMensaje += "Copia[3][1] = " + CValToChar(aCopia[3][1]) + CRLF
    cMensaje += "Copia[3][2] = " + CValToChar(aCopia[3][2]) + CRLF
    cMensaje += "Copia[3][3] = " + CValToChar(aCopia[3][3])

    MsgInfo(cMensaje, "Ejemplo de ACopy")
Return
Resultado esperado

Los elementos de aEjemplo se copian hacia aCopia, que ya fue creada con una estructura compatible.

04 · EJEMPLO PRÁCTICO

Copia parcial con posición de destino

User Function ACopy2()
    Local aOrigen := {"A", "B", "C", "D"}
    Local aDestino := {"", "", "", ""}

    ACopy(aOrigen, aDestino, 2, 2, 3)

    MsgInfo("Destino: " + aDestino[1] + "," + ;
        aDestino[2] + "," + aDestino[3] + "," + aDestino[4])
Return
Resultado esperado

Copia dos elementos desde la posición 2 del origen y los graba desde la posición 3 del destino.

BUENAS PRÁCTICAS
  • Use ACopy() quando já existe um array de destino preparado e você quer copiar todos ou parte dos elementos de outro array.
  • Use nInicio, nCont e nPosDestino para cópias parciais e reposicionamento dos elementos.
  • Para duplicar um array inteiro, especialmente com subarrays ou matrizes multidimensionais, avalie AClone().
  • A referência TDN informa abrangência histórica em Microsiga Protheus 8.11 e Protheus 10.
ERRORES COMUNES
  • ACopy() no altera automáticamente la estructura del array de destino para hacer posible la copia.
  • Si el destino no tiene posiciones compatibles, el resultado puede no ser el esperado o generar error según el caso.
  • Copiar arrays internos puede mantener referencias internas según la estructura; cuando la intención sea una copia independiente de estructuras multidimensionales, prefiere AClone().

Contenido relacionado

REFERENCIAS
  1. TOTVS. ACopy. TDN Framework. Copia elementos de un array hacia otro.
  2. Programação em ADVPL Completo. Material de capacitación registrado en la documentación oficial. Contenido resumido, revisado y ejemplos adaptados.
Estado
Publicado
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR
0 comentario(s) aprobado(s)

Comentarios

Todavía no hay comentarios aprobados.

Inicia sesión con Google o Microsoft para comentar.

Desarrollado con Usina Docs · Alpha