USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Validações)

Título da Dica:  Substituindo todos os acentos em um texto
Postada em 25/8/2003 por Ð@®l@n            
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:

128 € 160 [space] 192 À 224 à
129 € 161 ¡ 193 Á 225 á
130 € 162 ¢ 194 Â 226 â
131 € 163 £ 195 Ã 227 ã
132 € 164 ¤ 196 Ä 228 ä
133 € 165 ¥ 197 Å 229 å
134 € 166 ¦ 198 Æ 230 æ
135 € 167 § 199 Ç 231 ç
136 € 168 ¨ 200 È 232 è
137 € 169 © 201 É 233 é
138 € 170 ª 202 Ê 234 ê
139 € 171 « 203 Ë 235 ë
140 € 172 ¬ 204 Ì 236 ì
141 € 173 ­ 205 Í 237 í
142 € 174 ® 206 Î 238 î
143 € 175 ¯ 207 Ï 239 ï
144 € 176 ° 208 Ð 240 ð
145 € 177 ± 209 Ñ 241 ñ
146 € 178 ² 210 Ò 242 ò
147 € 179 ³ 211 Ó 243 ó
148 € 180 ´ 212 Ô 244 ô
149 € 181 µ 213 Õ 245 õ
150 € 182 ¶ 214 Ö 246 ö
151 € 183 · 215 × 247 ÷
152 € 184 ¸ 216 Ø 248 ø
153 € 185 ¹ 217 Ù 249 ù
154 € 186 º 218 Ú 250 ú
155 € 187 » 219 Û 251 û
156 € 188 ¼ 220 Ü 252 ü
157 € 189 ½ 221 Ý 253 ý
158 € 190 ¾ 222 Þ 254 þ
159 € 191 ¿ 223 ß 255 ÿ


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)
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página