View Full Version : VB2005 - Como ler caracteres especiais ?!


trikton
22-10-2006, 17:13
Boas tardes,

Estou a iniciar-me na programação em vb (vb5 express).
Comecei por desenvolver uma aplicação que vai lendo um ficheiro, linha a linha , processa estas linhas e escreve num outro ficheiro. Uma coisa simples por sinal, o problema é que quando leio linhas que contêm caracteres especiais (e.g. ã, é, ç), estes são ignorados.

Ex:
Linha do ficheiro: "sub estação de são sebastião"

Linha em memória depois de lida : "sub estao de so sebastio"

Alguém que conheça este problema e me possa ajudar?
Obrigado

HecKel
22-10-2006, 17:25
Boas!

Duas perguntas:
1) é VB5 ou VB 2005 Express Edition?
2) Como tens o ficheiro codificado? UTF ou iso-8859-x?

abraços, HecKel

trikton
22-10-2006, 17:36
É o VB 2005 Express Edition.
Quanto à codificação do ficheiro, presumo que seja o iso-8859-x, pq estive a experimentar umas coisitas com o encoding e deu-me a informação de estar a usar o UTF para descodificar o ficheiro..

HecKel
22-10-2006, 17:44
Nunca programei em VB 2005, mas tendo em conta que é da MS julgo que é capaz de dar confusão a ler ficheiros em condificações diferentes de iso-8859-x...., se não for este o problema não me ocorre nada que te possa ajudar :(

abraços, HecKel

inginheiiro
23-10-2006, 12:18
Dim reader As New System.IO.StreamReader("ficheiro.txt", System.Text.Encoding.UTF8)
Try
Dim theString As String = reader.ReadToEnd()
Finally
reader.Close()
End Try


Vê a classe System.Text.Encoding

/ing

trikton
26-10-2006, 21:38
Oi, obrigado por tudo, lá me consegui desenrrascar do problema.
O que fiz foi basicamente isto:

'Definição da codificação do ficheiro que vai ser lido
Dim enc As Encoding
'Códigos da pagina 1252 (contêm acentos)
enc = Encoding.GetEncoding(1252)

Dim fileReader As New System.IO.StreamReader(input, enc)

Abraços