Al momento sei offline in attesa che la connessione Internet venga ristabilita

HOW TO: Leggere un file di testo utilizzando System.IO e Visual Basic .NET

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I302309
Nel presente articolo viene illustrata una versione beta di un prodotto Microsoft. Le informazioni contenute in questo articolo vengono fornite "nello stato in cui si trovano" e sono soggette a modifiche senza preavviso.

Per questo prodotto beta Microsoft non fornisce alcun tipo di supporto formale. Per informazioni su come ottenere supporto per una versione beta, consultare la documentazione fornita con i file del prodotto beta oppure visitare il sito Web da cui la versione del prodotto è stata scaricata.

Per la versione di questo articolo relativa a Microsoft Visual C numero versione vedere l'articolo (gli articoli con prefisso "Q" contengono informazioni in inglese) 306777.
Sommario
In questo articolo viene descritto come recuperare informazioni da un file di testo e utilizzare la classe ArrayList per visualizzarle all'utente. Questo articolo è suddiviso nelle seguenti sezioni:

Requisiti

Microsoft Visual Basic .NET

Lettura di file di testo in Visual Basic .NET

L'apertura e la lettura di file con accesso in lettura costituiscono una parte importante della funzionalità di input/output (IO), anche se non è necessario scrivere sul file in questione. In questo esempio viene aperto un file per la lettura, una procedura utile per i file di testo ma non adatta ai file binari. Nell'esempio viene utilizzato uno dei vari metodi disponibili per l'apertura del file. Sebbene siano disponibili diverse strutture di dati per la memorizzazione delle informazioni recuperate dal file, la classe ArrayList è la struttura più semplice da utilizzare. Per aprire e leggere i dati contenuti nel file nell'esempio vengono impiegati oggetti dello spazio dei nomi System.IO, in particolare la classe System.IO.StreamReader.

NOTA: per riprodurre l'esempio occorre disporre di un file di testo (txt) qualunque da leggere.

Per caricare e leggere un file di testo da Visual Basic .NET, attenersi alla seguente procedura:
  1. Aprire Visual Studio .NET. Creare una nuova applicazione console in Visual Basic .NET. In Visual Studio vengono automaticamente creati un modulo e una procedura Main() vuota.
  2. Verificare che il progetto contenga riferimenti per lo meno allo spazio dei nomi System. Utilizzare l'istruzione Imports per gli spazi dei nomi System, System.IO e System.Collections in modo che non sia necessario qualificare in un secondo tempo nel codice le relative dichiarazioni. Queste istruzioni devono essere utilizzate prima di qualunque altra dichiarazione.
    Imports SystemImports System.IOImports System.Collections
  3. Per aprire un file per la lettura, creare una nuova istanza di un oggetto StreamReader e passare il percorso del file al costruttore come segue:
    Dim objReader As New StreamReader("c:\test.txt")
  4. Occorrerà una variabile di stringa in cui memorizzare ogni riga del file man mano che si procede. Poiché le righe verranno aggiunte a ArrayList, dichiarare e creare anche un oggetto di questo tipo.
    Dim sLine As String = ""Dim arrText As New ArrayList()
  5. Esistono vari modi per leggere all'interno del file, compreso il metodo ReadToEnd con il quale l'intero file viene letto immediatamente. In questo esempio è tuttavia possibile utilizzare il metodo ReadLine per inserire il file una riga alla volta. Una volta raggiunta la fine del file, il metodo restituisce "Nothing", il che costituisce un modo per porre termine al loop. Man mano che ogni riga del file viene letta, è possibile servirsi del metodo Add di ArrayList per inserire le righe nella classe ArrayList.
    Do    sLine = objReader.ReadLine()    If Not sLine Is Nothing Then        arrText.Add(sLine)    End IfLoop Until sLine Is NothingobjReader.Close()
  6. Utilizzare un loop "For Each" per scrivere nella console il contenuto dell'ArrayList in cui sono appena stati inseriti i dati come illustrato di seguito:
    For Each sLine In arrText    Console.WriteLine(sLine)NextConsole.ReadLine()
  7. Salvare ed eseguire il codice, nella console viene visualizzato il file.

Elenco completo del codice

Imports SystemImports System.IOImports System.CollectionsModule Module1    Sub Main()        Dim objReader As New StreamReader("c:\test.txt")        Dim sLine As String = ""        Dim arrText As New ArrayList()        Do            sLine = objReader.ReadLine()            If Not sLine Is Nothing Then                arrText.Add(sLine)            End If        Loop Until sLine Is Nothing        objReader.Close()        For Each sLine In arrText            Console.WriteLine(sLine)        Next        Console.ReadLine()    End SubEnd Module

Precauzioni

Vi sono vari fattori di cui essere consapevoli quando si lavora con l'I/O di file, fra cui:
  • Ogni volta che si accede a un file vi è la possibilità che il file che si tenta di leggere o su cui si tenta di scrivere non sia presente nel sistema o sia in uso.
  • In questo esempio l'intero file viene letto in memoria prima di essere elaborato. Il file potrebbe essere troppo grande per essere contenuto in memoria oppure l'utente potrebbe non disporre delle autorizzazioni di accesso al file.
In tutti questi casi si verifica un'eccezione. È sempre buona norma fornire un blocco try...catch per gestire queste situazioni comuni.

RIFERIMENTI

Per ulteriori informazioni, vedere il seguente sito Web Microsoft .NET SDK QuickStart Tutorials (informazioni in lingua inglese):
try-catch VB
Proprietà

ID articolo: 302309 - Ultima revisione: 04/08/2003 17:19:00 - Revisione: 1.0

  • Microsoft Visual Basic .NET 2002 Standard Edition
  • kbhowto kbhowtomaster kbnokeyword KB302309
Feedback
src="https://c.microsoft.com/ms.js" '="">om/ms.js" '="">