Pesquisando um Elemento em um Array Usando Bloco de Código com aScanX em ADVPL

Tempo de leitura: 2 minutos

 

A função aScanX em ADVPL percorre um array procurando por um valor especificado e para fazer essa busca essa função utiliza um bloco de código. Ela é uma das funções de manipulação de array em ADVPL.

Sintaxe:

aScanX(aDest,bPesq,nIni,nQtd)

 

Parâmetro(s):

 

Retorno:

 

 

Exemplo da função aScanX em ADVPL

#include 'protheus.ch'
/*{Protheus.doc} User Function faScanX
    (Essa função tem por finalidade mostrar a função de Manipulação de Array aScanX em ADVPL)
    @type  Function
    @author Adilio Costa
    @since 04/08/2025
    @?version 1.0
@?Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@?Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@?Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@?Conheça os Cursos e Formações do Protheus
https://cursos-e-formacoes-protheusadvpl.gr-site.com/

@Participe de nossas comunidades no WhatsApp:
-Comunidade Protheus Backoffice:https://chat.whatsapp.com/KMUIAjwZ6EZ6eAHsLkPTyb
-Comunidade Protheus-RH:https://chat.whatsapp.com/L5dUyAna6xU4ylG5DUgfOW
-Comunidade Protheus-Programação:https://chat.whatsapp.com/LsD6z0apdqKHlOz67bcaEn
-Comunidade Protheus-Framework:https://chat.whatsapp.com/BzUFpjaSnTC3vtsfa77jmG
 
|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
 
*/
 
User Function faScanX()
    Local aLingProg := {}
    Local nPos,nPos2
    Local nIni := 2
 
//Adiciona elementos no array aLinProg com a função aAdd
 
    aAdd(aLingProg,"TLPP")
    aAdd(aLingProg,"PHP")
    aAdd(aLingProg,"JAVA")
    aAdd(aLingProg,"C#4")
    aAdd(aLingProg,"ADVPL")
    aAdd(aLingProg,"PYTHON")
 
    nPos := aScanX(aLingProg,{|x,y| AllTrim(x) == "ADVPL" .AND. y<=0})
    nPos2 := aScanX(aLingProg,{|x,y| AllTrim(x) == "ADVPL" .AND. y>=4},nIni)
 
    If(nPos > 0)
        FWAlertInfo("A linguagem de programação "+aLingProg[nPos]+" foi encontrada na posição:"+cValToChar(nPos),"Função aScanX")
    EndIf
 
    If(nPos2 > 0)
        FWAlertInfo("A linguagem de programação "+aLingProg[nPos2]+" foi encontrada na posição:"+cValToChar(nPos2),"Função aScanX")
    EndIf
 
 
Return

No código ADVPL acima nós passamos para a função aScanX o array aLingProg e uma expressão de busca com o bloco código onde aScanX percorre todo o array aLingProg e atribui cada elemento à variável x e o índice à y, dentro do bloco de código e assim trazer a posição no array a linguagem “ADVPL“. A função aScanX retornou a posição 0 a nPos pois a posição retornada da linguagem “ADVPL” foi 5 mas 5 não é menor ou igual a 0. Já a variável nPos2 recebeu o conteúdo 4 pois foi a posição da linguagem “ADVPL” no array que AScanX retornou, contando a partir de nIni(2):

 

É isso aí, finalizamos mais um post aqui no Blog ProtheusAdvpl, caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Até um próximo post. Grande abraço e fica com Deus.

 

Link(s) de referência:

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.