Removendo caracteres de uma string através da StrDelChr – Maratona AdvPL e TL++ 457

Nesse vídeo demonstraremos a utilização da função StrDelChr, que serve para remover caracteres de uma string.

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

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe457
Remove alguns caracteres de uma string
@type Function
@author Atilio
@since 31/03/2023
@obs 
    Função StrDelChr
    Parâmetros
        Recebe a string a ser analisada
        Recebe um array com os textos a serem removidos
    Retorno
        Retorna o texto formatado

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

User Function zExe457()
    Local aArea     := FWGetArea()
    Local cTexto    := ""
    Local aRetirar  := {}
    Local cNovo     := ""

    //Monta as informações e aciona a remoçaõ de caracteres
    cTexto    := "A aranha arranha a rã. A rã arranha a aranha. Nem a aranha arranha a rã. Nem a rã arranha a aranha."
    aRetirar  := {"a", "m", " "}
    cNovo     := StrDelChr(cTexto, aRetirar)

    //Exibe a mensagem
    FWAlertInfo(cNovo, "Teste de StrDelChr")

    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.

2 Responses

  1. Gabriel Biolo Cembranel disse:

    Boa tarde Dan, preciso de um auxilio.
    Como faco para retirar os (Enter) de um campo observacao.
    EXEMPLO:

    OI EU SOU O GABRIEL
    ( Chr(13))
    PRECISO RETIRAR O ENTER ( Chr(13)) FOI DADO LOCO ACIMA

    Frase correta ficaria:
    OI EU SOU O GABRIEL PRECISO RETIRAR O ENTER ( Chr(13)) FOI DADO LOCO ACIMA

    Ou se tem algum jeito de nao deixar o usuario dar enter para digitar na linha de baixo.
    Teria como me auxiliar

    • Bom dia Gabriel, tudo joia?

      Se for campo MEMO, ai realmente nativamente ele vai aceitar o -enter-.

      Para tratar, e remover o -enter-, via AdvPL, você pode usar a StrTran, exemplo:
      […]
      cFraseOrig := “Olá” + CRLF + “segunda linha”
      cFraseNova := StrTran(cFraseOrig, CRLF, “. “)
      […]

      No exemplo acima, a constante CRLF (que está dentro da TOTVS.ch), ela adiciona um -enter- na variável cFraseOrig, nisso a outra variável vai remover esse -enter- e colocar um . no lugar.

      Agora se for direto via SQL Server, ai você pode tratar com um REPLACE, algo como:
      […]
      REPLACE(CAMPO, CHAR(13) + CHAR(10), ‘. ‘)
      […]

      Tenha uma ótima e abençoada quarta feira.

      Um grande abraço.

Deixe uma resposta

Terminal de Informação