Sincronizza Indice |
Scarica il progetto |
Testo dell'articolo |
Stampa l'articolo |
La lettura di un file di testo è un'operazione semplicissima in
Visual Basic. All'interno di un form inseriamo due pulsanti di comando entrambi di nome PulsanteLeggi. Formeremo quindi una matrice di pulsanti. Il primo avrà indice 0 ed il secondo indice 1.
Inseriamo anche una casella di testo e chiamiamola CasellaTesto. Impostiamo la sua proprietà Multiline a True permettendo quindi il ritorno a capo del testo, e la ScollBars a 3 - Both, inserendo le barre di scorrimento in entrambe le direzioni. Conviene anche impostare la proprietà Locked a True in modo da impedire la modifica del testo letto. Abbandoniamo l'interfaccia grafica e focalizziamoci sul codice.
Segue la funzione legata all'evento Click sopra uno dei due pulsanti.
Poiché gli elementi sono in matrice, entrambi rispondono allo stesso
evento. Si differenziano tra loro per il parametro Index passato.
Alle righe di codice 5 e 6 dichiariamo due variabili: BUFFER, utilizzata per immagazzinare i dati che provengono dalla lettura del file, e NRFILE, un numero che identifica il file aperto. La prima operazione di questa routine consiste nell'azzerare il contenuto precedente della casella di testo, con il semplice assegnamento di una stringa nulla alla proprietà Text di CasellaTesto. Segue, alla riga 8, la ricerca di un numero di file libero. Infatti tutti i files aperti con Visual Basic richiedono un numero di file. L'istruzione FreeFile restituisce il prossimo numero di file libero. Subito segue un semplice controllo del parametro Index. Se esso è 0, ovvero è stato cliccato il primo pulsante, effettua l'apertura del primo file, altrimenti apre il secondo file. L'istruzione Open che abbiamo alla settima e alla nona
riga ha questa sintassi: NOMEFILE ovviamente indica il percorso completo del file da aprire.
La modalità di apertura cambia il modo di recupero dei dati dal file aperto. Il parametro MODALITÀ può assumere uno di questi valori:
Le nostre istruzioni alle righe 10 e 12 innanzitutto ricavano il nome
del file da aprire. Abbiamo detto che le costanti FileDaAprire1
e FileDaAprire2 contengono il nome del file da aprire, ma non il
suo percorso fisico. Sappiamo che entrambi i files si trovano all'interno
della cartella del programma. Conoscendo quindi il percorso, l'istruzione effettua un'apertura in modalità Binary utilizzando il numero del file contenuto nella variabile NRFile, che in effetti è il primo numero libero utilizzabile per aprire un file. Alla riga 14 abbiamo un controllo d'obbligo: poiché ci accingiamo a visualizzare il contenuto del file all'interno di una TextBox è fondamentale considerare che se il testo complessivo supera i 20 KB quasi sicuramente si genererà un errore. Nel nostro progetto abbiamo inserito due files: uno di dimensione piccola ed un altro di dimensione maggiore di 20 KB. Il controllo che viene effettuato è tramite l'istruzione LOF ovvero Length Of File, che riporta la dimensione del file aperto in bytes. Se tale numero è maggiore di 20000 bytes, avverte l'utente con un avviso, tramite l'istruzione MsgBox. Segue un ciclo di lettura che si ripeterà fin quando non verrà letto l'intero file:
L'istruzione EOF - End Of File - controlla se la posizione di lettura ha raggiunto la fine del file. Per cui, fintanto che tale posizione non è raggiunta verranno eseguite le righe 16, 17, 18 e 19.
La prima di queste righe prepara un buffer di lettura di 2 KB. Letto il buffer di 2KB aggiungiamo all'inizio d'esso il contenuto attuale della casella di testo, contenuto che verrà aggiornato alla riga successiva. Le righe 18 e 19 camminano di pari passo. La seconda riceve il contenuto dalla prima e la prima nel passaggio successivo aggiunge il contenuto del buffer al contenuto precedente. Lo svantaggio principale di questo genere di operazioni è che per ogni istruzione vengono passate grosse quantità di dati. I 2KB di buffer alla seconda operazione diventano 4, poi 6, etc... Alla riga 21 segue un'istruzione d'obbligo. La chiusura del file. Infatti
tutti i files aperti tramite l'istruzione Open rimangono bloccati fintanto
che non viene chiuso il numero del file associato ad essi. |
Il programmino è finito. L'utilizzo è estremamente facile. Il click sopra uno dei due pulsanti effettua la lettura del file corrispondente. Fibia
FBI
|
Torna all'indice degli HowTo |