AEVAL()
 Ejecuta un bloque de código por cada elemento de una matriz
------------------------------------------------------------------------------
 Sintaxis

     AEVAL(<aMatriz>, <bBloque>,
        [<nInicio>], [<nPosiciones>]) --> aMatriz

 Argumentos

     <aMatriz> es la matriz que se va a recorrer.

     <bBloque> es el bloque de código que se va a ejecutar por cada
     elemento encontrado.

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

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

 Devuelve

     AEVAL() devuelve una referencia a <aMatriz>.

 Descripción

     AEVAL() es una función de matrices que evalúa un bloque de código por
     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 <aMatriz>, a no ser que se
     especifique <nInicio> o <nPosiciones>.

     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 CLIPPER.LIB.

 To download this example - click here.

See Also: DBEVAL() EVAL() QOUT()