Segue um código para remover acentos de strings em progress… bem util. :D

Código
FUNCTION removeAcento RETURNS CHARACTER (INPUT pChar AS CHARACTER):
DEFINE VARIABLE iPos AS INTEGER NO-UNDO.
DO iPos = 1 TO LENGTH(pChar):
IF CAN-DO(“á,ã,â,à”,SUBSTRING(pChar,iPos,1)) THEN
ASSIGN SUBSTRING(pChar,iPos,1) = “a”.
END.

DO iPos = 1 TO LENGTH(pChar):
IF CAN-DO(“é,ê,è”,SUBSTRING(pChar,iPos,1)) THEN
ASSIGN SUBSTRING(pChar,iPos,1) = “e”.
END.

DO iPos = 1 TO LENGTH(pChar):
IF CAN-DO(“í,î,ì”,SUBSTRING(pChar,iPos,1)) THEN
ASSIGN SUBSTRING(pChar,iPos,1) = “i”.
END.

DO iPos = 1 TO LENGTH(pChar):
IF CAN-DO(“ó,õ,ô,ò”,SUBSTRING(pChar,iPos,1)) THEN
ASSIGN SUBSTRING(pChar,iPos,1) = “o”.
END.

DO iPos = 1 TO LENGTH(pChar):
IF CAN-DO(“ú,û,ù”,SUBSTRING(pChar,iPos,1)) THEN
ASSIGN SUBSTRING(pChar,iPos,1) = “u”.
END.

RETURN UPPER(pChar).

END FUNCTION.

Exemplo
MESSAGE removeAcento(“ÁCÁícáo”) VIEW-AS ALERT-BOX.

vlw



One Response to “Função para remover acentos”  

  1. 1 jose

    Para quem precisa retirar acentos de arquivos textos como legendas de filmes em divx, eis a melhor solução.

    Procure no google o programa wReplace12 (freeware) e siga a sequência a seguir:

    wReplace12 (instalar e abrir o programa)
    -open (abrir o arquivo txt)
    -replace many (clicar)
    -open (abrir o arquivo: “diacritic to ascii.wreplace”)
    -replace all (comanda a retirada de todos os acentos)
    -save as (gravar com novo nome)

    obs: você pode editar o arquivo do programa “diacritic to ascii.wreplace”, retirando os caracteres que não interessam e gravá-lo com outro nome.


Leave a Reply