ACCODARE O SOVRASCRIVERE DATI SU FILE
Secondo passo: utilizzo di Print e Open For Append e Output.In questo
passo spiegheremo come scrivere del testo in un file. Le funzioni
Open e Print servono rispettivamente a permettere l'accesso
al file e a scriverci. Per prima cosa impostiamo l'interfaccia del
programma creando i seguenti oggetti:
- Button:
- Name: Refres
- Caption: "Aggiorna"
- Enabled: False
- Utilità: questo bottone ci servirà per
ricaricare il file selezionato in Verfica allo
scopo di verificare se i cambiamenti sono stati
effettuati
- RichTextBox (se non lo trovate, dal menu Progetto
selezionate la voce Componenti,
cercate nella lista "Microsoft Rich
Text Box Control 6.0" o qualcosa
di simile e selezionatelo. Premendo OK dovrebbe apparire
una nuova icona nella barra degli strumenti, quello è il
controllo RichTextBox che simile a una normale casella di
testo ma ha ulteriori):
- Name: Verifica
- ScrollBars: 2 (verticali)
- Text: (nulla)
- Utilità: qui verrà caricato il testo del file
aperto per controllare che il comando Print
sia stato eseguito.
- Button:
- Name: OpenClose
- Caption: "Apri"
- Utilità: prima di poter accedere a
un file è necessario aprirlo e chiuderlo quando
si ha concluso il suo utilizzo.
- Button:
- Name: Prnt
- Caption: "Print"
- Enabled: False
- Utilità: premendo questo pulsante si scriverà
il testo di PrintObject nel file
aperto.
- TextBox:
- Name: PrintObject
- MultiLine: True
- Scrollbars: 2 (verticali)
- Utilità: qui è possibile digitare il testo che
verrà scritto nel file premendo Prnt.
- OptionButton
- Name: Outp
- Caption: "Output"
- Value: False
- Utilità: imposta che il contenuto del file verrà
eliminato aprendolo, per poi scriverci altro.
- OptionButton
- Name: Appen
- Caption: "Append"
- Value: True
- Utilità: imposta che utilizzando l'istruzione Print
si accoderà testo al file.
- TextBox
- Name: OpenFile
- Text: C:\Prova.txt
- Utilità: qui potremo specificare un
file alternativo al quale accedere, attenzione se
il file non esiste verrà creato.
Ora non resta che fare in modo che cliccando su OpenClose se non ci
sono file aperti si apra quello specificato in OpenFile, se invece
c'è un file aperto (quindi OpenClose.Caption="Chiudi") lo chiuda:
Private Sub OpenClose_Click() If OpenClose.Caption = "Apri" Then Verifica.LoadFile OpenFile.Text If Appen.Value = True Then Open OpenFile.Text For Append As #1 Else Open OpenFile.Text For Output As #1 Prnt.Enabled = True Refres.Enabled = True OpenClose.Caption = "Chiudi"
Else Close #1 Prnt.Enabled = False Refres.Enabled = False Verifica.Text = "" OpenClose.Caption = "Apri" End If End Sub
Vediamo in dettaglio ogni riga di codice:
-
Private Sub OpenClose_Click(): da inizio
alla sub OpenClose_Click che viene richiamata quando si clicca su
OpenClose.
-
Verifica.LoadFile OpenFile.Text: carica
nella RichTectBox Verifica il file
specificato in OpenFile. Attenzione, il
file deve essere caricato in Verifica
prima di utilizzare l'istruzione Open,
perchè nessuna applicazione può avere accesso a un file
già aperto.
-
If Appen.Value = True Then Open OpenFile.Text For
Append As #1 Else Open OpenFile.Text For Output As #1:
se Appen è selezionato (e quindi si
desidera accodare del testo al file) si apre il file
specificato in OpenFile For
Append (appunto in modalità accodamento)
identificandolo come file #1 altrimenti
(quindi Outp è selezionato) lo si apre For
Output (cioè in modalità di scrittura,
che cancella però tutto il contenuto preesistente del
file).
-
If OpenClose.Caption = "Apri" Then:
inizia un blocco If la cui condizione è
se il testo del pulsante OpenClose sia "Apri"
o meno (quindi "Chiudi").
-
Prnt.Enabled = True: abilita il pulsante
Prnt.
-
Refres.Enabled = True: abilita il
pulsante Refres.
-
OpenClose.Caption = "Chiudi":
cambia il testo del pulsante OpenClose
in "Chiudi".
-
Else: se il la condizione OpenClose.Caption
= "Apri" non
è vera (quindi il testo di OpenClose
è "Chiudi")
al posto che eseguire le istruzioni qui sopra il blocco If
esegue quelle tra Else e End If.
-
Close #1: chiude il file identificato
alla sua apertura come #1.
-
Prnt.Enabled = False: disabilita il
pulsante Prnt.
-
Refres.Enabled = False: disabilita il
pulsante Refres.
-
Verifica.Text = "": cancella
il testo in Verifica.
-
OpenClose.Caption = "Apri":
cambia il testo del pulsante OpenClose
in "Apri".
-
End If: chiude il blocco If
con condizione OpenClose.Caption = "Apri".
-
End Sub: indica la fine della Sub.
A questo punto non resta che fare che quando si preme su Prnt scrive
sul file #1 il testo in PrintObject:
Private Sub Prnt_Click()
Print #1, PrintObject.Text
End Sub
- Private Sub Prnt_Click(): dichiara
l'inizio della subroutine Prnt_Click che
viene richiamata premendo su Prnt.
- Print #1, PrintObject.Text: scrive nel
file #1 (precedentemente aperto)
il testo di PrintObject.
- End Sub: chiude la sub Prnt_Click.
Ora rimane solo un'ultima funzionalità: premendo su Refres il testo
di OpenFile deve diventare quello del file con le relative modifiche che
potremmo aver apportato:
Private Sub Refres_Click()
Close #1
Verifica.LoadFile OpenFile.Text
If Appen.Value = True Then Open OpenFile.Text For Append As #1 Else Open OpenFile.Text For Output As #1
End Sub
-
Private Sub Refres_Click(): dichiara
l'inizio della subroutine Refres_Click
che viene richiamata premendo su Refres.
-
Close #1: chiude il file identificato
come #1 perchè se il file è aperto (attraverso
l'istruzione Open) non è possibile
accedervi e quindi ricaricarlo in Verfica.
-
Verifica.LoadFile OpenFile.Text: carica
nella RichTextBox Verifica il file
specificato in OpenFile.
-
If Appen.Value = True Then Open OpenFile.Text For
Append As #1 Else Open OpenFile.Text For Output As #1:
se Appen è selezionato (e quindi si
desidera accodare del testo al file) si apre il file
specificato in OpenFile For
Append (appunto in modalità accodamento)
identificandolo come file #1 altrimenti
(quindi Outp è selezionato) lo si apre For
Output (cioè in modalità di scrittura,
che cancella però tutto il contenuto preesistente del
file). Quindi viene riaperto il file appena chiuso.
-
End Sub: chiude la sub Refres_Click.
|