Sintaxis
AFILL( <array>, <expresión> [ , <expresión numérica 1> ] [ , <expresión numérica 2> ] )
Propósito
Completa los elementos de un array con un determinado contenido.
Argumentos
< array >
Define el array cuyos elementos se completarán por un determinado contenido.
< expresión >
Define el valor que se completará en cada elemento del array. Puede ser una expresión de cualquier tipo de dato, incluyendo otro array, bloque de código o el valor NIL.
< expresión numérica1 >
Define la posición del primer elemento que se completará. SI este argumento se omite, el valor estándar será 1.
< expresión numérica2 >
Define la cantidad de elementos que se completarán a partir de la posición definida en la expresión numérica 1. Si se omite este argumento, todos los elementos del array, a partir de la expresión numérica 1 hasta el último, se completarán.
Utilización
Cuando se declara un array unidimensional (comandos LOCAL, PRIVATE o PUBLIC), sus elementos, a pesar de definidos, tienen el valor NIL como contenido. Para completar todos los elementos de un array con un contenido, de forma rápida y eficiente, se utiliza la función AFILL().
La función AFILL(array, 0) es equivalente, pero mucho más rápida y eficiente, a la ejecución de las siguientes instrucciones:
FOR nA := 1 TO n // n es el número de elementos
aVetor[nA] := 0 // cero es el valor que se completará
NEXT nA
Todos los elementos del array, desde el elemento inicial definido por la expresión numérica 1 hasta el final definido por la expresión numérica 2, se completarán con el resultado de la misma expresión especificada.
Sugerencias
La función AFILL() puede utilizarse solamente para completar arrays unidimensionales. Arrays multidimensionales se implementan en el AdvPL como arrays con otros arrays unidimensionales intercalados.
La utilización de la función AFILL() sobre arrays multidimensionales sobrescribirá los elementos de las otras dimensiones.
Ejemplos
En este ejemplo se crea un array con tres elementos, que después se completan con el contenido falso (.F.). Al final, se atribuye un nuevo valor, verdadero (.T.), a los elementos en las posiciones dos y tres:
LOCAL aLogic[3] // Resulta: { NIL, NIL, NIL }
AFILL(aLogic, .F.) // Resulta: { .F., .F., .F. }
AFILL(aLogic, .T., 2, 2) // Resulta: { .F., .T., .T. }