IMPORTACAO DE TXT SEM ACENTOS

XXXANGELSXXX 29/08/2009 10:44:43
#321329
Muito bom dia grandes amigos, aqui, estou fazendo a importacao de um arquivo txt para o meu banco de dados, so que esse arquivo vem cheio de caracteres especiais e esta detonando com meus relatorios depois .. exemplo, quero filtrar os clientes da cidade de ABAETé, so que no arquivo txt que recebi tem a mesma cidade cadastrada duas vezes ABAETé e ABAETE, ou seja, uma com acento outra sem acento, isso eu sei até fazer, mas preciso retirar muita coisa do arquivo txt antes de importar, como por exemplo [Ô]Ç^~[ô][Ô] etc, ou seja, tudo que for relativo a acentuaçao quero estar tirando para importar em um determinado padrao, outra coisa, eu queria importar tudo em maiusculo para evitar um cliente importado de um jeito e outro de outro jeito, sera que alguem pode me ajudar? estou usando mais ou menos assim na importacao.

rs(12) = Replace(a(12), [Ô]ú[Ô], [Ô]u[Ô])

Entao o que acontece, eu consigo converter o Ú pelo U, so que se tento colocar o restante dos caracteres para serem convertidos ele nao converte. Sem mais agradeço.
WHELLNET 29/08/2009 11:20:44
#321334
Cara, fiz uma função para retirar acentos e caracteres especiais. A utilizo antes de enviar dados para impressora matricial.
Mas no seu caso, deve lhe ajudar.

é o mesmo que você já tem, mais ao menos, tem todos as opções.
Pra usar, já convertendo em maiusculo
Rs(12) = UCase(TNormal(a(12))


Função TNormal
Function TNormal(Item As String) As String
[ô]tira os caracteres especiais de um texto
Item = Replace(Item, [Ô]ª[Ô], [Ô]a.[Ô])
Item = Replace(Item, [Ô]º[Ô], [Ô]o.[Ô])
Item = Replace(Item, [Ô]Á[Ô], [Ô]A[Ô])
Item = Replace(Item, [Ô]á[Ô], [Ô]a[Ô])
Item = Replace(Item, [Ô]À[Ô], [Ô]A[Ô])
Item = Replace(Item, [Ô]à[Ô], [Ô]a[Ô])
Item = Replace(Item, [Ô]Ã[Ô], [Ô]A[Ô])
Item = Replace(Item, [Ô]ã[Ô], [Ô]a[Ô])
Item = Replace(Item, [Ô]Â[Ô], [Ô]A[Ô])
Item = Replace(Item, [Ô]â[Ô], [Ô]a[Ô])
Item = Replace(Item, [Ô]Ä[Ô], [Ô]A[Ô])
Item = Replace(Item, [Ô]ä[Ô], [Ô]a[Ô])
Item = Replace(Item, [Ô]é[Ô], [Ô]E[Ô])
Item = Replace(Item, [Ô]é[Ô], [Ô]e[Ô])
Item = Replace(Item, [Ô]È[Ô], [Ô]E[Ô])
Item = Replace(Item, [Ô]è[Ô], [Ô]e[Ô])
Item = Replace(Item, [Ô]Ê[Ô], [Ô]E[Ô])
Item = Replace(Item, [Ô]ê[Ô], [Ô]e[Ô])
Item = Replace(Item, [Ô]Ë[Ô], [Ô]E[Ô])
Item = Replace(Item, [Ô]ë[Ô], [Ô]e[Ô])
Item = Replace(Item, [Ô]í[Ô], [Ô]i[Ô])
Item = Replace(Item, [Ô]Í[Ô], [Ô]I[Ô])
Item = Replace(Item, [Ô]ì[Ô], [Ô]i[Ô])
Item = Replace(Item, [Ô]Ì[Ô], [Ô]I[Ô])
Item = Replace(Item, [Ô]ï[Ô], [Ô]i[Ô])
Item = Replace(Item, [Ô]Ï[Ô], [Ô]I[Ô])
Item = Replace(Item, [Ô]î[Ô], [Ô]i[Ô])
Item = Replace(Item, [Ô]Î[Ô], [Ô]I[Ô])
Item = Replace(Item, [Ô]Ó[Ô], [Ô]O[Ô])
Item = Replace(Item, [Ô]ó[Ô], [Ô]o[Ô])
Item = Replace(Item, [Ô]Ò[Ô], [Ô]O[Ô])
Item = Replace(Item, [Ô]ò[Ô], [Ô]o[Ô])
Item = Replace(Item, [Ô]Õ[Ô], [Ô]O[Ô])
Item = Replace(Item, [Ô]õ[Ô], [Ô]o[Ô])
Item = Replace(Item, [Ô]Ô[Ô], [Ô]O[Ô])
Item = Replace(Item, [Ô]ô[Ô], [Ô]o[Ô])
Item = Replace(Item, [Ô]Ö[Ô], [Ô]O[Ô])
Item = Replace(Item, [Ô]ö[Ô], [Ô]o[Ô])
Item = Replace(Item, [Ô]Ú[Ô], [Ô]U[Ô])
Item = Replace(Item, [Ô]ú[Ô], [Ô]u[Ô])
Item = Replace(Item, [Ô]Ù[Ô], [Ô]U[Ô])
Item = Replace(Item, [Ô]ù[Ô], [Ô]u[Ô])
Item = Replace(Item, [Ô]Û[Ô], [Ô]U[Ô])
Item = Replace(Item, [Ô]û[Ô], [Ô]u[Ô])
Item = Replace(Item, [Ô]Ü[Ô], [Ô]U[Ô])
Item = Replace(Item, [Ô]ü[Ô], [Ô]u[Ô])
Item = Replace(Item, [Ô]Ç[Ô], [Ô]C[Ô])
Item = Replace(Item, [Ô]ç[Ô], [Ô]c[Ô])
Item = Replace(Item, [Ô]Ñ[Ô], [Ô]N[Ô])
Item = Replace(Item, [Ô]ñ[Ô], [Ô]n[Ô])
TNormal = Item
End Function
EMERSONTADEU 29/08/2009 14:59:52
#321347
Caso queira utilizar a função em VB6 acima substitua replace() por replace$(), sugiro isto pois a primeira função aceita parâmetros do tipo variant e perde tempo a cada verificação validando e convertendo em string o que já é string ... o mesmo se aplica para Left$, Mid$ e o restante das funções nativas do VB6 ou menos.

VBNET não tem disso, string deixa de ser tipo e vira classe e ganha métodos e propriedades ao invés de funções.

Pega o VBNET express e compila o código abasixo numa dll ... vai servir para qualquer aplicação que possa se comunicar com o sistema, ex SQL Server ... VB5,6,NET ... C#.
E o melhor de tudo, é feito pela framework e terá desempenho de linguagem C !

Imports System.Text
Public Class Form1
Public Function RemoveAccentMarks(ByVal s As String) As String
Dim normalizedString As String = s.Normalize(NormalizationForm.FormD)
Dim intNormalize As Integer = normalizedString.Length - 1
Dim stringBuilder As New StringBuilder()
Dim c As Char
For i As Integer = 0 To intNormalize
c = normalizedString(i)
If System.Globalization.CharUnicodeInfo.GetUnicodeCategory(c) <> System.Globalization.UnicodeCategory.NonSpacingMark Then
stringBuilder.Append(c)
End If
Next
Return stringBuilder.ToString

End Function
End Class
Tópico encerrado , respostas não são mais permitidas