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

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):