Buscando a primeira ou última expressão caractere com At e RAt – Maratona AdvPL e TL++ 047

Nesse vídeo demonstraremos em como buscar uma expressão caractere através das funções At e RAt.

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe047
Exemplo de função que retorna a primeira ou a última posição de um texto conforme uma busca
@type Function
@author Atilio
@since 30/11/2022
@see https://tdn.totvs.com/display/tec/At e https://tdn.totvs.com/display/tec/RAt
@obs 
    Função At
    Parâmetros
        + cPesquisa , Caractere  , Indica a String que será buscada
        + cDestino  , Caractere  , Indica a String onde será efetuada a busca
        + nStart    , Numérico   , Indica a partir de qual posição deve iniciar a busca
    Retorno
        + nRet      , Numérico   , Retorna a posição encontrada

    Função RAt
    Parâmetros
        + cSearch   , Caractere  , Indica a String que será buscada
        + cSource   , Caractere  , Indica a String onde será efetuada a busca
    Retorno
        + nRet      , Numérico   , Retorna a posição encontrada

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe047()
    Local aArea      := FWGetArea()
    Local cNome      := "DANIEL DANIEL ATILIO ATILIO"
    Local cBusca1    := "IEL"
    Local cBusca2    := "ATILIO"
    Local nPosEnc    := 0

    //Busca pelo texto "IEL" dentro da string, a primeira posição que encontrar será mostrada
    nPosEnc := At(cBusca1, cNome)
    If nPosEnc != 0
        FWAlertInfo("Foi encontrado a busca a partir da posição: " + cValToChar(nPosEnc), "Exemplo At")
    EndIf

    //Busca pelo texto "ATILIO" dentro da string, a última posição que encontrar será mostrada
    nPosEnc := RAt(cBusca2, cNome)
    If nPosEnc != 0
        FWAlertInfo("Foi encontrado a busca a partir da posição: " + cValToChar(nPosEnc), "Exemplo RAt")
    EndIf

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação