VBA - Visual Basic for Applications

⌘K
  1. Home
  2. Documenti
  3. VBA – Visual Basic ...
  4. Snippets di codice
  5. Carica file di testo

Carica file di testo

Caricare in memoria i dati da un file

Tempo di lettura: 2 minuti

Analogamente a quanto fatto per la procedura di salvataggio di un testo su file in questo articolo andiamo a vedere la procedura e il relativo codice sorgente per caricare in memoria un file di testo precedentemente memorizzato su una memoria di massa.

Per poter caricare un file come prima cosa dobbiamo creare una apposita routine che chiameremo Carica_File_di_Testo e qui di seguito trovare il codice sorgente

Function Carica_File_di_Testo(ByVal NomeFile As String) As String
Dim FN As Integer
Dim Testo As String
FN = FreeFile
Open NomeFile For Input As #FN
Testo = Input(LOF(FN), #FN)
Close #FN
Carica_File_di_Testo = Testo
End Function

Abbiamo una funzione che riceve come parametro in ingresso il nome del file (con estensione e percorso completo) da caricare contenente il testo e restituisce come risultato una stringa contenente il testo contenuto all’interno del file.

Dopo avere dichiarato le due variabili FN e Testo utilizziamo la funzione FreeFile per trovare il numero del canale di lettura del file libero. Tale numero, memorizzato nella variabile FN verrà utilizzato in tutta la routine.

Successivamente il file (NomeFile) viene aperto (Open) in lettura (For Input) e il contenuto del file viene letto tramite l’istruzione Input e il risultato viene assegnato alla variabile Testo.

Il comando Close chiude il canale aperto.

L’ultima istruzione della funzione restituisce il risultato sotto forma di stringa.

Se, ad esempio, vogliamo leggere il file CSV creato nell’articolo precedente non dovremo far altro che inserire queste routine all’interno di un evento come nell’esempio succcessivo

Sub Pulsante2_Click()
Dim Testo As String
Testo = Carica_File_di_Testo("C:\Users\pippo\Desktop\TEST.CSV")
MsgBox (Testo)
End Sub

Questa routine richiama la funzione Carica_File_di_Testo passandogli come file “C:\Users\pippo\Desktop\TEST.CSV” ed assegnando il risultato alla variabile Testo che ora conterrà in testo presente nel file che nel nostro caso è un file CSV contenente dati tabellari.

Per nostra comodità e per capire se la routine ha avuto successo facciamo visualizzare un message box con il contenuto della variabile Testo tramite il comando MsgBox (Testo).

Una volta che è stato caricato il file in memoria si avrà la possibilità di farne quello che meglio si ritiene opportuno con i dati come vedremo anche nei prossimi esempi.

NOTA: Il codice sorgente qui riportato è stato creato, per motivi didattici, in modo semplice permettendo al lettore di concentrarsi sullo scopo del codice. E’ però importante ricordare che per un uso professionale di tale codice si consiglia di inserire una serie di accortezze che rendano il codice più efficiente e robusto ad iniziare, per esempio, dal controllo degli errori. In questo codice non è stato inserito alcun tipo di controllo e del relativo intervento nel caso in cui si verifichi una condizione o evento inatteso. Se ad esempio il file non venisse trovato il programma si bloccherebbe restituendo un errore.