Simão
Microsoft Student Partner

Por vezes surge a duvida: Como é que escrevi? Conceição, Conceicão ou Conceicao ??

Assim tentamos manter uma coerência na forma de introdução de dados para facilitar a pesquisa

 

Public Function tiraAcentos(ByVal str As String) As String

     Dim strComAcentos As String = "ÁÀÃÂàáãâÈÉÊèéêÌÍÎìíîÒÓÕÔòóõôÙÚÛùúûÇç"

     Dim strSemAcentos As String = "AAAAaaaaEEEeeeIIIiiiOOOOooooUUUuuuCc"

     Dim i As Integer

     For i = 0 To strComAcentos.Length - 1

          str = str.Replace(strComAcentos.Chars(i), strSemAcentos.Chars(i))

     Next

     Return str

End Function

 

Private Sub TextBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating

     TextBox1.Text = tiraAcentos(TextBox1.Text)

End Sub

?>

posted on Thursday, July 06, 2006 8:43 AM
Comments
  • # re: Retirar os Acentos
    José Lopes da Cruz
    Posted @ 7/6/2006 8:26 PM
    Se for para fazer uma pesquisa em texto concordo, no entanto se for para aceder a uma Base de Dados Sql Server recomendo que se use na query de pesquisa a palavra COLLATION que permite "pedir" ao Sql Server que usando uma determinada tabela de caracteres ignora acentos, ou case sensitive, etc...
  • # re: Retirar os Acentos
    Simão
    Posted @ 7/6/2006 8:50 PM
    Olá José,
    desconhecia isso, sabes se também funciona ou se existe algo do género no Oracle?
  • # re: Retirar os Acentos
    cleydson
    Posted @ 7/6/2006 9:38 PM
    Geralmente para este tipo de trabalho, uso o RegEx(Expressões regulares). Dá uma olhada nesse exemplo abaixo:

    Imports System.Text.RegularExpressions
    Public Class Util

    Public Shared Function LimparString(ByVal texto As String) As String
    Dim expressao As Regex
    texto = expressao.Replace(texto, "[áàãâä]", "a")
    texto = expressao.Replace(texto, "[ÁÀÃÂÄ]", "A")
    texto = expressao.Replace(texto, "[èéêë]", "e")
    texto = expressao.Replace(texto, "[ÈÉÊË]", "E")
    texto = expressao.Replace(texto, "[îìïí]", "i")
    texto = expressao.Replace(texto, "[ÎÌÏÍ]", "I")
    texto = expressao.Replace(texto, "[óòõöô]", "o")
    texto = expressao.Replace(texto, "[ÓÒÕÖÔ]", "O")
    texto = expressao.Replace(texto, "[úùüû]", "u")
    texto = expressao.Replace(texto, "[ÚÙÜÛ]", "U")
    Return texto
    End Function

    End Class

    Abraço,

    //Cleydson
  • # re: Retirar os Acentos
    Jeferson Hultmann
    Posted @ 7/7/2006 2:24 AM
    No .NET 2, o string.Normalize também pode interessar:
    http://www.codeproject.com/csharp/UnicodeNormalization.asp

    P.S. dando uma de chato, no seu exemplo o recomendado seria usar um StringBuilder no loop. ;-)
Title  
Name  
Url
Box Code
Protected by FormShield
Comments