Guida al Visual Basic: Lavorare con il file di testo – costruire un editor
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 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 |
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 |
Per visualizzare il testo dobbiamo poi concatenerlo ricorsivamente nel TextBoxscarica qui l’esempio file.zip |