quinta-feira, 5 de agosto de 2010

Converte caracteres na Web

Function ConverteCaracterWeb ( sTexto As String , iVer As Integer , iRep As Integer ) As String
%REM
Finalidade :
Retorna string de 2 duas maneiras

1. String no formato URL para com ou sem acento.
2. String com acento para sem acento ou no formato URL

Parametros :
1. sString = String que será convertida.
2. ver = Modelo atual da string.
3. rep = Modelo futuro da string.

Posições na Tabela :
1 - caracteres com acentos;
2 - caracteres com formato de URL;
3 - caracteres sem acentos;

OBS : Não há condições de se converter caracteres sem acentos para os outros formatos.

Exemplo :
1. Converter string com acento para formato URL e sem acento
x = ConvCaracter ( "Ação" , 1 , 2 ) // retorno : A%E7%E3o
x = ConvCaracter ( "Ação" , 1 , 3 ) // retorno : Acao
2. Converter string no formato de URL para acentos
x = ConvCaracter ( "A%E7%E3o" , 2 , 1 ) // retorno : Ação
x = ConvCaracter ( "A%E7%E3o" , 2 , 3 ) // retorno : Acao
%END REM

Dim sString As String
Dim iComp As Integer
Dim i As Integer
Dim j As Integer
Dim sEntradas() As String

' Atribuicao para evitar mudanca de valores por referencia
sString = sTexto

Redim Preserve sEntradas ( 1 To 71 , 1 To 3 )
sEntradas(1,1) = "á"
sEntradas(2,1) = "à"
sEntradas(3,1) = "ã"
sEntradas(4,1) = "â"
sEntradas(5,1) = "ä"
sEntradas(6,1) = "Á"
sEntradas(7,1) = "À"
sEntradas(8,1) = "Ã"
sEntradas(9,1) = "Â"
sEntradas(10,1) = "Ä"
sEntradas(11,1) = "è"
sEntradas(12,1) = "é"
sEntradas(13,1) = "ê"
sEntradas(14,1) = "ë"
sEntradas(15,1) = "È"
sEntradas(16,1) = "É"
sEntradas(17,1) = "Ê"
sEntradas(18,1) = "Ë"
sEntradas(19,1) = "í"
sEntradas(20,1) = "ì"
sEntradas(21,1) = "î"
sEntradas(22,1) = "ï"
sEntradas(23,1) = "Í"
sEntradas(24,1) = "Ì"
sEntradas(25,1) = "Î"
sEntradas(26,1) = "Ï"
sEntradas(27,1) = "ó"
sEntradas(28,1) = "ò"
sEntradas(29,1) = "õ"
sEntradas(30,1) = "ô"
sEntradas(31,1) = "ö"
sEntradas(32,1) = "Ó"
sEntradas(33,1) = "Ò"
sEntradas(34,1) = "Õ"
sEntradas(35,1) = "Ô"
sEntradas(36,1) = "Ö"
sEntradas(37,1) = "ú"
sEntradas(38,1) = "ù"
sEntradas(39,1) = "û"
sEntradas(40,1) = "ü"
sEntradas(41,1) = "Ú"
sEntradas(42,1) = "Ù"
sEntradas(43,1) = "Û"
sEntradas(44,1) = "Ü"
sEntradas(45,1) = "ç"
sEntradas(46,1) = "Ç"
sEntradas(47,1) = "ñ"
sEntradas(48,1) = "Ñ"
sEntradas(49,1) = " "
sEntradas(50,1) = "'"
sEntradas(51,1) = "#"
sEntradas(52,1) = "|"
sEntradas(53,1) = ","
sEntradas(54,1) = "("
sEntradas(55,1) = ")"
sEntradas(56,1) = "["
sEntradas(57,1) = "]"
sEntradas(58,1) = "{"
sEntradas(59,1) = "}"
sEntradas(60,1) = "<" sEntradas(61,1) = ">"
sEntradas(62,1) = Chr(13)
sEntradas(63,1) = Chr(10)
sEntradas(64,1) = "?"
sEntradas(65,1) = "!"
sEntradas(66,1) = ":"
sEntradas(67,1) = "%"
sEntradas(68,1) = "º"
sEntradas(69,1) = "/"
sEntradas(70,1) = "\"
sEntradas(71,1) = {"}

sEntradas(1,2) = "%E1"
sEntradas(2,2) = "%E0"
sEntradas(3,2) = "%E3"
sEntradas(4,2) = "%E2"
sEntradas(5,2) = "%E4"
sEntradas(6,2) = "%C1"
sEntradas(7,2) = "%C0"
sEntradas(8,2) = "%C3"
sEntradas(9,2) = "%C2"
sEntradas(10,2) = "%C4"
sEntradas(11,2) = "%E8"
sEntradas(12,2) = "%E9"
sEntradas(13,2) = "%EA"
sEntradas(14,2) = "%EB"
sEntradas(15,2) = "%C8"
sEntradas(16,2) = "%C9"
sEntradas(17,2) = "%CA"
sEntradas(18,2) = "%CB"
sEntradas(19,2) = "%ED"
sEntradas(20,2) = "%EC"
sEntradas(21,2) = "%EE"
sEntradas(22,2) = "%EF"
sEntradas(23,2) = "%CD"
sEntradas(24,2) = "%CC"
sEntradas(25,2) = "%CE"
sEntradas(26,2) = "%CF"
sEntradas(27,2) = "%F3"
sEntradas(28,2) = "%F2"
sEntradas(29,2) = "%F5"
sEntradas(30,2) = "%F4"
sEntradas(31,2) = "%F6"
sEntradas(32,2) = "%D3"
sEntradas(33,2) = "%D2"
sEntradas(34,2) = "%D5"
sEntradas(35,2) = "%D4"
sEntradas(36,2) = "%D6"
sEntradas(37,2) = "%FA"
sEntradas(38,2) = "%F9"
sEntradas(39,2) = "%FB"
sEntradas(40,2) = "%FC"
sEntradas(41,2) = "%DA"
sEntradas(42,2) = "%D9"
sEntradas(43,2) = "%DB"
sEntradas(44,2) = "%DC"
sEntradas(45,2) = "%E7"
sEntradas(46,2) = "%C7"
sEntradas(47,2) = "%F1"
sEntradas(48,2) = "%D1"
sEntradas(49,2) = "%20"
sEntradas(50,2) = "%27"
sEntradas(51,2) = "%23"
sEntradas(52,2) = "%7C"
sEntradas(53,2) = "%2C"
sEntradas(54,2) = "%28"
sEntradas(55,2) = "%29"
sEntradas(56,2) = "%5B"
sEntradas(57,2) = "%5D"
sEntradas(58,2) = "%7B"
sEntradas(59,2) = "%7D"
sEntradas(60,2) = "%3C"
sEntradas(61,2) = "%3E"
sEntradas(62,2) = "%0D"
sEntradas(63,2) = "%0A"
sEntradas(64,2) = "%3F"
sEntradas(65,2) = "%21"
sEntradas(66,2) = "%3A"
sEntradas(67,2) = "%25"
sEntradas(68,2) = "%BA"
sEntradas(69,2) = "%2F"
sEntradas(70,2) = "%5C"
sEntradas(71,2) = "%22"

sEntradas(1,3) = "a"
sEntradas(2,3) = "a"
sEntradas(3,3) = "a"
sEntradas(4,3) = "a"
sEntradas(5,3) = "a"
sEntradas(6,3) = "A"
sEntradas(7,3) = "A"
sEntradas(8,3) = "A"
sEntradas(9,3) = "A"
sEntradas(10,3) = "A"
sEntradas(11,3) = "e"
sEntradas(12,3) = "e"
sEntradas(13,3) = "e"
sEntradas(14,3) = "e"
sEntradas(15,3) = "E"
sEntradas(16,3) = "E"
sEntradas(17,3) = "E"
sEntradas(18,3) = "E"
sEntradas(19,3) = "i"
sEntradas(20,3) = "i"
sEntradas(21,3) = "i"
sEntradas(22,3) = "i"
sEntradas(23,3) = "I"
sEntradas(24,3) = "I"
sEntradas(25,3) = "I"
sEntradas(26,3) = "I"
sEntradas(27,3) = "o"
sEntradas(28,3) = "o"
sEntradas(29,3) = "o"
sEntradas(30,3) = "o"
sEntradas(31,3) = "o"
sEntradas(32,3) = "O"
sEntradas(33,3) = "O"
sEntradas(34,3) = "O"
sEntradas(35,3) = "O"
sEntradas(36,3) = "O"
sEntradas(37,3) = "u"
sEntradas(38,3) = "u"
sEntradas(39,3) = "u"
sEntradas(40,3) = "u"
sEntradas(41,3) = "U"
sEntradas(42,3) = "U"
sEntradas(43,3) = "U"
sEntradas(44,3) = "U"
sEntradas(45,3) = "c"
sEntradas(46,3) = "C"
sEntradas(47,3) = "n"
sEntradas(48,3) = "N"
sEntradas(49,3) = " "
sEntradas(50,3) = " "
sEntradas(51,3) = "#"
sEntradas(52,3) = "|"
sEntradas(53,3) = ","
sEntradas(54,3) = "("
sEntradas(55,3) = ")"
sEntradas(56,3) = "["
sEntradas(57,3) = "]"
sEntradas(58,3) = "{"
sEntradas(59,3) = "}"
sEntradas(60,3) = "<" sEntradas(61,3) = ">"
sEntradas(62,3) = Chr(13) & Chr(10)
sEntradas(63,3) = ""
sEntradas(64,3) = "?"
sEntradas(65,3) = "!"
sEntradas(66,3) = ":"
sEntradas(67,3) = "%"
sEntradas(68,3) = "o."
sEntradas(69,3) = "/"
sEntradas(70,3) = "\"
sEntradas(71,3) = {"}

If iVer > 2 Or iRep > 3 Or iVer = iRep Then
ConverteCaracterWeb = sString
Exit Function
End If

' Quantidade de caracteres a serem substituidos na string
iComp = 1
If (iVer = 2) Then iComp = 3

' Percorre a string desejada
For i = 0 To Len(sTexto)
' Percorre a tabela de URLs
For j = 0 To Ubound(sEntradas)-1
If sEntradas(j+1, iVer) = Mid$(sTexto, i+1, iComp) Then
' Substitui os caracteres na string
sString = SubstituiString(sString, sEntradas(j+1, iVer), sEntradas(j+1, iRep))
Exit For
End If
Next
Next

ConverteCaracterWeb = sString

End Function

Nenhum comentário:

Postar um comentário