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...