Compartir a través de


Funciones en tiempo de ejecución para contenedores de X++

Nota:

Los grupos de interés de la comunidad ahora se han movido de Yammer a Microsoft Viva Engage. Para unirse a una comunidad viva Engage y participar en las últimas discusiones, rellene el formulario Solicitar acceso a Finance and Operations Viva Engage Community y elija la comunidad a la que desea unirse.

En este artículo se describen las funciones en tiempo de ejecución del contenedor.

Estas funciones manipulan el contenido de los contenedores.

conDel

Quita el número especificado de elementos de un contenedor.

Syntax

container conDel(container container, int start, int number)

Parámetros

Parámetro Description
container Contenedor del que se van a quitar elementos.
start Posición basada en uno en la que se empiezan a quitar elementos.
number Número de elementos que se van a eliminar.

Valor devuelto

Nuevo contenedor que no incluye los elementos quitados.

Example

static void conDelExample(Args _args)
{
    container c = ["Hello world", 1, 3.14];
    
    // Deletes the first two items from the container.
    c = conDel(c, 1, 2);
}

conFind

Busca la primera aparición de un elemento en un contenedor.

Syntax

int conFind(container container, anytype element)

Parámetros

Parámetro Description
container Contenedor que se va a buscar.
Elemento Elemento que se va a buscar.

Valor devuelto

0 si no se encontró el elemento; de lo contrario, el número de secuencia del elemento.

Example

static void conFindExample(Args _args)
{
    container c = ["item1", "item2", "item3"];
    int i = conFind(c, "item2");
    int j = conFind(c, "item4");

    print "Position of 'item2' in container is " + int2Str(i);
    print "Position of 'item4' in container is " + int2Str(j);
}

conIns

Inserta uno o varios elementos en un contenedor.

Syntax

container conIns(container container, int start, anytype element, ... )

Parámetros

Parámetro Description
container Contenedor en el que se van a insertar elementos.
start Posición en la que se van a insertar elementos.
Elemento Uno o varios elementos que se van a insertar, separados por comas.

Valor devuelto

Nuevo contenedor que contiene los elementos insertados.

Observaciones

El número 1 especifica el primer elemento del contenedor. Para insertar después del elemento n, el parámetro start debe ser n+1. También puede usar el += operador para agregar valores de cualquier tipo a un contenedor. Por ejemplo, para crear un contenedor que contenga los valores cuadrados de las primeras 10 iteraciones de bucle, use el código siguiente.

int i;
container c;

for (i = 1; i < = 10; i++)
{
    // Append the square of the index to the container
    c += i*i;
}

Example

static void conInsExample(Args _arg)
{
    container c;
    int i;

    c = conIns(c,1,"item1");
    c = conIns(c,2,"item2");

    for (i = 1 ; i <= conLen(c) ; i++)
    {
        // Prints the content of a container.
        print conPeek(c, i);
    }
}

conLen

Recupera el número de elementos de un contenedor.

Syntax

int conLen(container container)

Parámetros

Parámetro Description
container Contenedor en el que se va a contar el número de elementos de .

Valor devuelto

Número de elementos del contenedor. El contenedor conNull no tiene elementos.

Example

static void conLenExample(Args _arg)
{
    container c = conins(["item1", "item2"], 1);

    for (int i = 1 ; i <= conLen(c) ; i++)
    {
        print conPeek(c, i);
    }
}

conNull

Recupera un contenedor vacío.

container conNull()

Valor devuelto

Un contenedor vacío.

Example

static void conNullExample(Args _arg)
{
    container c = ["item1", "item2", "item3"];

    print "The size of container is " + int2str(conLen(c));

    // Set the container to null.
    c = conNull();
    print "Size of container after conNull() is " + int2Str(conLen(c));
}

conPeek

Recupera un elemento específico de un contenedor y lo convierte en otro tipo de datos, si se requiere la conversión.

Syntax

anytype conPeek(container container, int number)

Parámetros

Parámetro Description
container Contenedor del que se va a devolver un elemento.
number Posición del elemento que se va a devolver. Especifique 1 para obtener el primer elemento. Un número de posición no válido, como -3, 0 o un número mayor que la longitud del contenedor, podría provocar errores imprevisibles.

Valor devuelto

Elemento del contenedor en la posición especificada por el parámetro number . La función conPeek convierte automáticamente el elemento inspeccionado en el tipo de valor devuelto esperado. Las cadenas se pueden convertir automáticamente en enteros y números reales, y los enteros y números reales se pueden convertir en cadenas.

Example

static void main(Args _args)
{
    container cnI, cnJ;
    int i, j;
    anytype aty;
    
    info("container cnI ...");
    cnI = ["itemBlue", "itemYellow"];

    for (i=1; i <= conLen(cnI); i++)
    {
        aty = conPeek(cnI, i);
        info(int2str(i) + " :  " + aty);
    }

    info("container cnJ ...");
    cnJ = conIns(cnI, 2, "ItemInserted");

    for (j=1; j <= conLen(cnJ); j++)
    {
        aty = conPeek(cnJ, j);
        info(int2str(j) + " :  " + aty);
    }
}
/***  Output pasted from InfoLog ...
Message (10:20:03 am)
container cnI ...
1 :  itemBlue
2 :  itemYellow
container cnJ ...
1 :  itemBlue
2 :  ItemInserted
3 :  itemYellow
***/

conPoke

Modifica un contenedor reemplazando uno o varios de los elementos existentes.

Syntax

container conPoke(container container, int start, anytype element, ...)

Parámetros

Parámetro Description
container Contenedor que se va a modificar.
start Posición del primer elemento que se va a reemplazar.
Elemento Uno o varios elementos que se van a reemplazar, separados por comas.

Valor devuelto

Nuevo contenedor que incluye los nuevos elementos.

Observaciones

El número 1 especifica el primer elemento del contenedor.

Example

static void conPokeExample(Args _arg)
{
    container c1 = ["item1", "item2", "item3"];
    container c2;
    int i;

    void conPrint(container c)
    {
        for (i = 1 ; i <= conLen(c) ; i++)
        {
            print conPeek(c, i);
        }
    }

    conPrint(c1);
    c2 = conPoke(c1, 2, "PokedItem");
    print "";
    conPrint(c2);
}