COMPARACAO DE STRINGS

ROGERIOHOFFMANN 16/07/2004 08:31:17
#33751
Olá,

Estou tentando comparar duas strings:

String1: "Florianópolis" (com acento)
String2: "Florianopolis" (sem acento)

Na minha aplicação, estas palavras são iguais, como fazer isso?

Usando: If uCase(String1) = uCase(String2) then não funciona porque sempre retorna false (porque na verdade não são iguais - uma tem acento e outra não). Mas quero ignorar o acento.

Como fazer?
USUARIO.EXCLUIDOS 16/07/2004 08:48:58
#33754
Resposta escolhida
Crie uma funcao que voce substitua esse tipo de "incompatibilidade"

****** Código extraído de Exemplo de Pesquisa Fonética de VB6Master ******
Public Function fncMudaNome(byval MudNome as string) as string
mudNome = Trim(mudNome)
'elimina letras acentuadas
mudNome = Replace(mudNome, "á", "a", , , vbTextCompare)
mudNome = Replace(mudNome, "à ", "a", , , vbTextCompare)
mudNome = Replace(mudNome, "à¢", "a", , , vbTextCompare)
mudNome = Replace(mudNome, "à¤", "a", , , vbTextCompare)
mudNome = Replace(mudNome, "ã", "a", , , vbTextCompare)
mudNome = Replace(mudNome, "a", "[aáà à¢à¤ã]", , , vbTextCompare)
mudNome = Replace(mudNome, "é", "e", , , vbTextCompare)
mudNome = Replace(mudNome, "à¨", "e", , , vbTextCompare)
mudNome = Replace(mudNome, "ê", "e", , , vbTextCompare)
mudNome = Replace(mudNome, "à«", "e", , , vbTextCompare)
mudNome = Replace(mudNome, "e", "[eéà¨êà«]", , , vbTextCompare)
mudNome = Replace(mudNome, "í", "i", , , vbTextCompare)
mudNome = Replace(mudNome, "à¬", "i", , , vbTextCompare)
mudNome = Replace(mudNome, "à®", "i", , , vbTextCompare)
mudNome = Replace(mudNome, "à¯", "i", , , vbTextCompare)
mudNome = Replace(mudNome, "à½", "i", , , vbTextCompare)
mudNome = Replace(mudNome, "à¿", "i", , , vbTextCompare)
mudNome = Replace(mudNome, "y", "i", , , vbTextCompare)
mudNome = Replace(mudNome, "i", "[iíà¬à®à¯yà¿à½]", , , vbTextCompare)
mudNome = Replace(mudNome, "ó", "o", , , vbTextCompare)
mudNome = Replace(mudNome, "à²", "o", , , vbTextCompare)
mudNome = Replace(mudNome, "à'", "o", , , vbTextCompare)
mudNome = Replace(mudNome, "à¶", "o", , , vbTextCompare)
mudNome = Replace(mudNome, "õ", "o", , , vbTextCompare)
mudNome = Replace(mudNome, "o", "[oóà²à'à¶õ]", , , vbTextCompare)
mudNome = Replace(mudNome, "ú", "u", , , vbTextCompare)
mudNome = Replace(mudNome, "à¹", "u", , , vbTextCompare)
mudNome = Replace(mudNome, "à»", "u", , , vbTextCompare)
mudNome = Replace(mudNome, "à¼", "u", , , vbTextCompare)
mudNome = Replace(mudNome, "u", "[uúà¹à»à¼]", , , vbTextCompare)
mudNome = Replace(mudNome, "à±", "n", , , vbTextCompare)
mudNome = Replace(mudNome, "n", "[nà±]", , , vbTextCompare)

mudNome = Replace(mudNome, "'", "''", , , vbTextCompare)
mudNome = Replace(mudNome, " ", "%", , , vbTextCompare)

mudNome = Replace(mudNome, "ç", "c", , , vbTextCompare)
mudNome = Replace(mudNome, "k", "c", , , vbTextCompare)
mudNome = Replace(mudNome, "c", "[cçk]", , , vbTextCompare)
mudNome = Replace(mudNome, "z", "s", , , vbTextCompare)
mudNome = Replace(mudNome, "z", "[sz]", , , vbTextCompare)
mudNome = Replace(mudNome, "s", "[sz]", , , vbTextCompare)
mudNome = Replace(mudNome, "w", "v", , , vbTextCompare)
mudNome = Replace(mudNome, "v", "[wv]", , , vbTextCompare)
fncMudaNome = mudNome
End Function

entao na hora de comparar, voce compara
if ucase(fncMudaNome("Florianopolis")) = ucase(fncMudaNome("Florianópolis")) then
Tópico encerrado , respostas não são mais permitidas