Função para remover caractere especial

Segue um exemplo de função para remover caracteres especiais de textos.

function specialChar returns character (INPUT pOrigem as character):
    define variable cNovo as character no-undo.
    define variable i as integer no-undo.
    define variable iAsc as integer no-undo.
    define variable cPosicao as character no-undo.
    define variable cTratado as character no-undo.

    assign cNovo = pOrigem.
    repeat i = 1 to length(cNovo):
        assign
        cPosicao = substring(cNovo,i,1)
        cTratado = "".
        if asc(cPosicao) > 127 then do:
            repeat iAsc = 65 to 90: /* A..Z */
                if compare(cPosicao, "eq" , chr(iAsc), "case-sensitive") then assign cTratado = chr(iAsc).
            end.
            repeat iAsc = 97 to 122: /* a..z */
                if compare(cPosicao, "eq" , chr(iAsc), "case-sensitive") then assign cTratado = chr(iAsc).
            end.
            if cTratado <> "" then assign substring(cNovo,i,1) = cTratado.
        end.
    end.
    return cNovo.
end.

MESSAGE specialChar("Programação | PROGRAMAÇÃO")
VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.

Resultado:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.