Função: AScanX
Realiza a leitura do array à procura de um valor específico.Funciona da mesma forma que a função aScan(), porém quando utilizado um bloco de código para realizar a busca, o mesmo é chamado com um segundo parâmetro, informando qual é o elemento do array em questão que está sendo verificado na chamada corrente do bloco de código.
AScanX ( < aDestino>, < bProcura>, [ nInicio], [ nCont] ) --> nRet
Nome | Tipo | Descrição | Obrigatório | Referência |
aDestino | Vetor | Indica o array de pesquisa. | X | |
bProcura | Bloco de código | Indica o valor que será pesquisado através de um bloco de código. | X | |
nInicio | Numérico | Indica a partir de qual elemento será realizada a busca. Por padrão a pesquisa inicia no elemento 1. | ||
nCont | Numérico | Indica por quantos elementos a função irá passar. |
-
nRet(numerico)
- Retorna um valor numérico que representa a posição que ocupa no array pelo último elemento lido. Quando não encontra é retornado 0.
- A função retorna o índice do valor encontrado no array para a primeira execução do bloco de código que retornar .T. , caso nenhum retorne .T. a função retorna 0 ( zero )
- Em build iguais ou anteriores a 7.00.101202A, caso o terceiro argumento (nInicio) fosse especificado, em caso de sucesso a função retornava o índice encontrado relativo à posição inicial de busca. Este comportamento foi corrigido, para igualar com o comportamento da função aScan(), em builds iguais ou superiores a 7.00.111010A.
#DEFINE CRLF Chr(13)+Chr(10)User Function Exemplo()Local aExemplo := {}Local cMensagem := ""//+----------------------------------------------------------------------------+//|Exemplifica o uso da função AScanX |//+----------------------------------------------------------------------------+ AAdd(aExemplo, "Banana") AAdd(aExemplo, "Maçã") AAdd(aExemplo, "Pêra") AAdd(aExemplo, "Limão") AAdd(aExemplo, "Abacaxi") AAdd(aExemplo, "Laranja") AAdd(aExemplo, "Mamão") AAdd(aExemplo, "Graviola") cMensagem += "Abacaxi" + CRLF cMensagem += "AScanX(aExemplo, {|x,y|x=='Abacaxi' .And. y<=1}) = " + ; cValToChar(AScanX(aExemplo, {|x,y|x=="Abacaxi" .And. y<=1})) + CRLF cMensagem += "AScanX(aExemplo, {|x,y|x=='Abacaxi' .And. y<=5}) = " + ; cValToChar(AScanX(aExemplo, {|x,y|x=="Abacaxi" .And. y<=5})) + CRLF cMensagem += "AScanX(aExemplo, {|x,y|x=='Abacaxi' .And. y<=6}, 2) = " + ; cValToChar(AScanX(aExemplo, {|x,y|x=="Abacaxi" .And. y<=6}, 2)) + CRLF cMensagem += "AScanX(aExemplo, {|x,y|x=='Abacaxi' .And. y<=6}, 2) = " + ; cValToChar(AScanX(aExemplo, {|x,y|x=="Abacaxi" .And. y<=6}, 2)) + CRLF cMensagem += "AScanX(aExemplo, {|x,y|x=='Abacaxi' .And. y<=6}, 2, 2) = " + ; cValToChar(AScanX(aExemplo, {|x,y|x=="Abacaxi" .And. y<=6}, 2, 2)) + CRLF cMensagem += "AScanX(aExemplo, {|x,y|x=='Abacaxi' .And. y<=6}, 2, 2) = " + ; cValToChar(AScanX(aExemplo, {|x,y|x=="Abacaxi" .And. y<=6}, 2, 2))//+----------------------------------------------------------------------------+//|Apresenta uma mensagem com os resultados obtidos |//+----------------------------------------------------------------------------+Return MsgInfo(cMensagem, "Exemplo do AScanX")
Exemplo da função AScanX
Microsiga Protheus 8.11
,
Protheus 10
,
TOTVS Application Server 10
,
ByYou Application Server
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas