61 messaggi dal 10 gennaio 2002
Ciao a tutti ragazzi,

sto cercandi leggere un file txt da vbnet ma ho un piccolo problema...
Nel file, essendo contenuto del testo, capita che ci siano dei caratteri quali parole accentate (ò, è ..ecc)
Se io leggo riga per riga quello che è contennuto nel file capita che le parole accentate non mi vengono lette.
Es.
mettiamo che nell'insieme delle righe che compongono il mio file ci sia una scritta del genere
"Leggo questa riga quà!"

Il sistema mi legge : "Leggo questa riga qu!"

Ma perchè vengono cancellate le parole accentate???

il codice che eseguo è il seguente:

Dim myFileStream As FileStream
Dim myStreamReader As StreamReader
Dim Lettura As String

' Apro il file
myFileStream = New FileStream("c:\MioFile.txt", FileMode.Open, FileAccess.Read, FileShare.Read)
' Leggo l'output con la classe stream reader
myStreamReader = New StreamReader(myFileStream)

Do While myStreamReader.Peek >= 0
Lettura = myStreamReader.ReadLine
MsgBox(lettura)
Loop

Ciao e grazie a tutti.
501 messaggi dal 09 giugno 2006
Contributi
Ciao.

Si tratta di un problema di codifica. Usando caratteri accentati il file scritto nel file system potrebbe essere salvato in ANSI o UTF8.

La tua chiamata

myStreamReader = New StreamReader(myFileStream)


crea l'oggetto streamer usando l'encoding UTF8 ma molto probabilmente il tuo file è ANSI.

Puoi provare ad usare ques'altro costruttore:

myStreamReader = New StreamReader(myFileStream, System.Text.Encoding.GetEncoding("iso-8859-1"))


che dovrebbe funzionare per il tuo caso. Se usi .NET 2.0 hai a disposizione anche la classe My.Computer.FileSystem

Ciao.
Modificato da mrdev il 08 gennaio 2007 15.06 -

.:. Marcello Rutter .:.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.