Executa um code block para cada elemento de um array.
Sintaxe
AEVAL( aArray, bBloco, [ nInicio ], [ nQtde]) –> aArray
Descrição
AEVAL() executa um code block para cada elemento de um array, passando cada um como o parâmetro do bloco. É muito semelhante ao DBEVAL().
AEVAL() passa cada elemento de um array para o code block sem se preocupar com o tipo.
Exemplo 1
#include “Directry.ch”
//
LOCAL aFiles := DIRECTORY(“*.dbf”), nTotal := 0
AEVAL(aFiles,{ | aDbfFile | QOUT(PADR(aDbfFile[F_NAME], 10), aDbfFile[F_SIZE]),;
nTotal += aDbfFile[F_SIZE]);
} )
//
?
? “Total Bytes:”, nTotal
Exemplo 2
#include “Directry.ch”
//
LOCAL aFiles := DIRECTORY(“*.dbf”), aNames := {}
AEVAL(aFiles, { | file | AADD(aNames, file[F_NAME]) } )
Exemplo 3
LOCAL aArray[6]
AFILL(aArray,”old”)
AEVAL(aArray,;
{|cValue,nIndex| IF(cValue == “old”,;
aArray[nIndex] := “new”,)})
