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

Traduzione articoli Traduzione articoli
Identificativo articolo: 302309 - Visualizza i prodotti a cui si riferisce l?articolo.
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.
Espandi tutto | Chiudi tutto

In questa pagina

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 System
    Imports System.IO
    Imports 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 If
    Loop Until sLine Is Nothing
    objReader.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)
    Next
    Console.ReadLine()
  7. Salvare ed eseguire il codice, nella console viene visualizzato il file.

Elenco completo del codice

Imports System
Imports System.IO
Imports System.Collections

Module 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 Sub

End 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):
http://www.gotdotnet.com/quickstart

Proprietà

Identificativo articolo: 302309 - Ultima modifica: martedì 8 aprile 2003 - Revisione: 1.0
Le informazioni in questo articolo si applicano a
  • Microsoft Visual Basic .NET 2002 Standard Edition
Chiavi: 
kbhowto kbhowtomaster kbnokeyword KB302309
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com