Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 4 Atual »

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

 

NomeTipoDescriçãoObrigatórioReferência
aDestinoVetorIndica o array de pesquisa.X 
bProcuraBloco de códigoIndica o valor que será pesquisado através de um bloco de código.X 
nInicioNuméricoIndica a partir de qual elemento será realizada a busca. Por padrão a pesquisa inicia no elemento 1.  
nContNuméricoIndica 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

 

  • Sem rótulos