At em ADVPL — Como Obter a Posição de uma Substring no Protheus

Tempo de leitura: 3 minutos

No desenvolvimento Protheus, a necessidade de encontrar um padrão dentro de um texto é constante. Seja para validar o formato de um e-mail, extrair uma informação de uma chave de nota fiscal ou tratar retornos de APIs, você precisa saber exatamente onde um caractere começa. A função At em ADVPL é a ferramenta nativa para localizar a primeira ocorrência de uma substring, sendo um conceito base em Fundamentos do ADVPL.

 

Neste guia prático, você aprenderá a sintaxe da função At, como utilizar o parâmetro de posição inicial e como aplicar esse conhecimento em suas rotinas customizadas de Manipulação de String.

O que é a função At e para que serve?

A função At tem como finalidade retornar a posição numérica da primeira ocorrência de uma substring dentro de uma string de destino. A pesquisa é realizada sempre da esquerda para a direita. Caso a substring não seja encontrada, a função retorna 0.

 

Um diferencial importante da At é a possibilidade de definir a partir de qual posição a busca deve começar, o que a torna extremamente flexível para tratar textos longos ou com múltiplas ocorrências do mesmo caractere.

Sintaxe:

At(cPesq,cDestino,nPosIni)

Parâmetro(s):

Retorno:

 

Exemplo:

At(“P”,”PROTHEUSADVPL”,3) -> 12

No exemplo acima utilizamos a função At e informamos como parâmetro à função o valor a ser pesquisado “P” na string “PROTHEUSADVPL”, e essa pesquisa ocorrerá a partir da posição 3 da string “PROTHEUSADVPL”, assim o valor retornado será 12 que é a posição da letra “P” na string.

Exemplo em ADVPL:

#include 'protheus.ch'

/*{Protheus.doc} User Function fAt
    (Essa função tem por finalidade mostrar a função de manipulação de string At em ADVPL/TL++.)
    @type  Function
    @author Adilio Costa
    @since 14/02/2024
   @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 ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/

|Se esse conteúdo foi útil pra você nos ajude divulgando
ele e nossas redes sociais!!|
*/

User Function fAt()
 
    Local cPesq := "P"
    Local cDestino := "PROTHEUSADVPL" //Variável caractere
    Local nPosIni := 3
    Local cMsg:=""
    Local nPos:= At(cPesq,cDestino,nPosIni)
 
    cMsg += "A posição da substring "+cPesq+" na string "+cDestino+" é:"+cValToChar(nPos)
 
    MsgInfo(cMsg,"Função At")
 
Return

At
Exemplo da função At em ADVPL.

Domine a Programação ADVPL do Zero ao Avançado

Para dominar este conceito em cenários complexos, como o parsing de arquivos XML/JSON ou a criação de filtros dinâmicos em consultas SQL, conheça o Portal ProtheusAdvpl. Lá, exploramos a fundo a arquitetura por trás destas funções e suas aplicações em grandes projetos de desenvolvimento.

 

Cursos Recomendados:

 

 

Dica de Ouro: At vs RAt

Enquanto a função At pesquisa da esquerda para a direita, o Protheus também disponibiliza a função RAt (Reverse At), que faz a busca da direita para a esquerda. Saber quando usar cada uma é o que diferencia um desenvolvedor produtivo.

 

 

Conclusão

A função At em ADVPL é indispensável para qualquer desenvolvedor que precise manipular textos de forma precisa. Ao entender como localizar substrings e utilizar os parâmetros de posição, você ganha total controle sobre o tratamento de dados no ERP. Dominar a Manipulação de String é um dos pilares para escrever códigos limpos e eficientes.

 

Links de referência(s):

 

 

Conteúdos relacionados

 
🚀 Quer evoluir no ADVPL de verdade?

Receba conteúdos práticos, códigos prontos e dicas que você 

 não aprende na documentação oficial

✔ Funções essenciais do ADVPL
✔ Exemplos reais usados no Protheus
✔ Dicas de debug e performance

🔐 Seu email está seguro. Sem spam.

🚀 Quer dominar o Protheus de verdade?
Entre para o ProtheusAdvpl e receba conteúdos exclusivos sobre desenvolvimento, infraestrutura, módulos e carreira no Protheus

✔ Conteúdos organizados por categorias (Programação, Framework, Backoffice e RH)
✔ Dicas práticas usadas no dia a dia do Protheus
✔ Acesso a materiais, post e atualizações do Blog
🔐 Seu email está seguro. Sem spam. Só conteúdo profissional.