In questo esempio vediamo come costruire un editor di testo in VB, usando solo una casella di testo e il concetto di file. Il programma permetterà di caricare un file predefinito, modificarlo e salvare i risultati.

Per prima cosa inseriamo il controllo text modificando subito alcune proprietà dalla omonima finestra:

Multiline=True permette di andare a capo automaticamente

ScrollBars=2-Vertical aggiunge le barre di scorrimento verticali

Dobbiamo ora creare un file di testo con il contenuto del TextBox e poi leggerne il contenuto. Per far ciò diamo un accenno alle operazioni sui file.

Open <NomeFile> For Output As NumeroFile
Print #NumeroFile, <Testo>
Close #NumeroFile

Open .. For Output crea sempre il nuovo file cancellandone il contenuto se esistente

NumeroFile che nel nostro caso è 1 è semplicemente un numero che il sistema assegna ad un file aperto; se si aprono più file  contemporanemente sarebbe meglio usare l’istruzione FreeFile che restituisce un numero di file libero.

Come poi vedete, l’istruzione Print che scrive nel file un valore di testo si riferisce a file contrassegnato  da NumeroFile

l’istruzione Close #NumeroFile chiude il file salvandone le modifiche.

Questo è quindi il codice per salvare in contenuto del TestBox nel file:

Private Sub Command2_Click()
On Error GoTo fine
Open App.Path & “testo.txt” For Output As #1
Print #1, Text1.Text
Close #1

Exit Sub
fine:
Close #1
MsgBox Err.Description
End Sub

App.Path è il percorso corrente dove viene eseguita l’applicazione VB
Per leggere il file dobbiamo invece aprire il file in modalità InputOpen <NomeFile> For Input As NumeroFile

Input NumeroFile, linea

Close NumeroFile

L’ istruzione Input legge però solo una riga alla volta nel file di testo, e la assegna alla variabile linea. Per essere sicuri di leggere tutto il testo dobbiamo creare un ciclo che vada fino alla fine del file:l’istruzione EOF( NumeroFile ) ci avvisa quando siamo arrivati alla fine.

Private Sub Command1_Click()
Text1.Text = “”
On Error GoTo fine
Open App.Path & “testo.txt” For Input As 1
Do
Input #1, linea
Text1.Text = Text1 & linea & vbCrLf
Loop Until EOF(1) = True
Close #1

Exit Sub
fine:
Close #1
MsgBox Err.Description
End Sub

Per visualizzare il testo dobbiamo poi concatenerlo ricorsivamente nel TextBoxscarica qui l’esempio file.zip

Le risorse selezionate diverse da Guida al Visual Basic: Lavorare con il file di testo - costruire un editor