AEVAL ( )

 Ejecuta un bloque de código en cada elemento de una matriz

Sintaxis

     AEVAL(, ,

        [], []) –> aMatriz

 Argumentos

es la matriz que se va a recorrer.

es el bloque de código que se va a ejecutar en cada elemento encontrado.

es el elemento inicial. Si no se especifica, el valor por defecto es el elemento uno.

es el número de elementos que se van a procesar, contados desde . Si no se especifica, el valor por defecto es  todos los elementos hasta el final de la matriz.

 Devuelve

AEVAL() devuelve una referencia a .

Descripción

AEVAL() es una función de matrices que evalúa un bloque de código en cada elemento de una matriz, pasando el valor y el índice del elemento como parámetros al bloque. El valor devuelto por el bloque se ignora. Se procesan todos los elementos de , a no ser que se especifique o .

AEVAL() no comprueba el contenido de los elementos de matriz que pasa al bloque. Se supone que el bloque correspondiente conoce el tipo de datos que hay en cada elemento.

AEVAL() es similar a DBEVAL(), que aplica un bloque a cada registro de un fichero de base de datos. Al igual que DBEVAL(), AEVAL() puede utilizarse como primitiva para crear mandatos iterativos, tanto para estructuras de matriz simples como complejas.

Si desea más información sobre la teoría y la sintaxis de los bloques de código, consulte la sección Bloques de Código del capítulo Conceptos Básicos de la guía de Programación y Utilidades.

Ejemplos

     ¦  El ejemplo siguiente utiliza AEVAL() para mostrar en pantalla

        una matriz de nombres y tamaños de fichero devueltos por la función

        DIRECTORY():

        #include “Directry.ch”

        //

        LOCAL aFicheros := DIRECTORY(“*.dbf”), nTotal := 0

        AEVAL(aFicheros,;

           {  aFicheroDBF ;

              QOUT(PADR(aFicheroDBF[F_NAME], 10),    aFicheroDBF[F_SIZE]),;

              nTotal += aFicheroDBF[F_SIZE]);

           } )

        //

        ?

        ? “Bytes totales:”, nTotal

     ¦  El ejemplo siguiente utiliza AEVAL() para crear una lista

        formada por los elementos seleccionados en una matriz

        multidimensional:

        #include “Directry.ch”

        //

        LOCAL aFicheros := DIRECTORY(“*.dbf”), aNombres := {}

        AEVAL(aFicheros,;

           {  fichero  AADD(aNombres, fichero[F_NAME]) };

           )

     ¦  El ejemplo siguiente modifica el contenido de un elemento de

        matriz, dependiendo de una condición. Observe la utilización de los

        parámetros de bloque de código: */

        LOCAL aMatriz[6]

        AFILL(aMatriz,”anterior”)

        AEVAL(aMatriz,;

        {cValor,nIndice IF(cValor == “anterior”,;

                          aMatriz[nIndice] := “nuevo”,)})

 Ficheros: La biblioteca asociada es DPXBASE.CH.