Problema lettura file di testo

mercoledì 17 novembre 2010 - 17.10
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  Windows 7  |  Visual Studio 2008  |  SQL Server 2008 R2

yuri85 Profilo | Junior Member

Ciao a tutti,

devo leggere dei file di testo e passarli ad una stringa .

questo è il codice:

Private Function DescriEstesa(ByRef v_articolo As String) Dim v_descriEstesa = "" Dim v_file As String = Path & v_articolo & ".txt" Dim r As New IO.StreamReader(v_file) While Not r.EndOfStream v_descriEstesa += r.ReadLine End While r.Close() Return v_descriEstesa End Function

la stringa viene poi passata ad un campo su una tabella e noto che dove ci sono gli accenti, mi visualizza un punto di domanda all'interno di un rombo. Ho provato anche con altri metodi ma il risultato non cambia.

non riconosce proprio l' accento ... qualcuno ha dei suggerimenti?

AntCiar Profilo | Expert

Ciao.

Potrebbe essere la codifica del file. se puoi mandaci il file in allegato.

ciao
Cristian Barca

StefanoRicci Profilo | Junior Member

tramite le direttive .NET e c# puoi serlezionare la codifica da usare in lettura/scrittura (UTF8,UTF7, ecc..) come parametro dello streamreader, verifica che il file letto stia usando quella di default (UTF8), altrimenti imposta quella corretta da usare

Lista Codifiche: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=VS.90).aspx
--------------------------------------

IDE: Visual Studio 2008 Professional Edition
IDE: Visual Studio 2010 Express

yuri85 Profilo | Junior Member

Dim objReader As New StreamReader(v_file)

MsgBox(objReader.CurrentEncoding.ToString) -> mi restituisce System.Text.UTF8Encoding che è corretto no?

StefanoRicci Profilo | Junior Member

quella è la codifica di default se non ne setti nessuna in particolare, ti dice che l'oggetto streamreder usa quella... il problema tuo è nel file di testo che vai a leggere, devi prima identificare la codifica di quello, poi dopo dire allo stream reader come leggerlo..

ecco due info che avevo sotto mano per darti una mano... qui dovresti trovare quello che cerchi per determinare la codifica prima di allocare la classe per leggerlo

http://www.west-wind.com/Weblog/posts/197245.aspx
http://www.codeproject.com/KB/recipes/DetectEncoding.aspx

--------------------------------------

IDE: Visual Studio 2008 Professional Edition
IDE: Visual Studio 2010 Express

yuri85 Profilo | Junior Member

ok fatto .

li avevo creati con Notepad++ e di default la codifica era ANSI .


grazie

StefanoRicci Profilo | Junior Member

ogni file che crei lo crei con una codifica, quella sponsorizzata in questo momento è la utf8, che è un modo di ridurre lo spreco di spazio portato dalla unicode usata per intero... è a carico di chi legge il file capire sta cosa in genere
--------------------------------------

IDE: Visual Studio 2008 Professional Edition
IDE: Visual Studio 2010 Express

full98 Profilo | Newbie

Prova ad usare:
My.Computer.FileSystem.ReadAllText()

Io uso sempre quello per leggere
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5