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