Substituindo todos os acentos em um texto.
Outro dia recebi uma consulta sobre como eliminar os caracteres acentuados de um texto. Na verdade o texto fora importado de uma base de dados padrão ISAM ( dbase , Fox Pro , Paradox ) e deveria ser usada em uma outra fonte de dados de forma que os caracteres acentuados iriam causar muitos problemas e deveriam ser removidos. Assim é , ê , ë deve tornar-se e ; á, à , ä, ã deve virar a , e assim por diante...
Para resolver o problema é só criar uma função que substitua esses caracteres pelos correspondentes sem acento. Muito esperto !! Para faze isto é só dar uma olhada na tabela ASCII de caracteres onde temos o código que representa cada caractere:
|
Observe que os códigos para À , Á , Â , Ä , Å correspondem aos códigos 192, 192, 193 ... , 197. Deu para pegar a idéia ??? A função deve receber o texto e verificar caracterer por caracter contra os códigos da tabela a cima , substituindo-os pelos respectivos caracteres sem acento... Vamos a dita cuja.
Private Function Limpa_Texto(texto As String) Dim texto_limpo As String Dim Codigo_Tabela_Asc As Integer Dim posicao As Long For posicao = 1 To Len(texto) Codigo_Tabela_Asc = Asc(Mid(texto, posicao, 1)) Select Case Codigo_Tabela_Asc Case 192 To 197 Codigo_Tabela_Asc = Asc("A") Case 224 To 229 Codigo_Tabela_Asc = Asc("a") Case 200 To 203 Codigo_Tabela_Asc = Asc("E") Case 232 To 235 Codigo_Tabela_Asc = Asc("e") Case 204 To 207 Codigo_Tabela_Asc = Asc("I") Case 236 To 239 Codigo_Tabela_Asc = Asc("i") Case 199 Codigo_Tabela_Asc = Asc("C") Case 231 Codigo_Tabela_Asc = Asc("c") End Select texto_limpo = texto_limpo & Chr(Codigo_Tabela_Asc) Next Limpa_Texto = texto_limpo End Function |
A função acima não esta completa , eu apenas mostrei como substituir as ocorrências de acentos nos caracteres: A,a,E,e,I,i,Ç e ç. Cabe a você agora expandir a função de acordo com sua necessidade. Quer saber como usar ???
Bem basta chamar a função passando o texto a ser limpo , assim : texto_limpo = limpa_Texto(texto)
Até a próxima...