Watch: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 7: | Riga 7: | ||
Public Sub Form_Open() | |||
varFile = Open "<Font Color= | varFile = Open "<Font Color=darkgreen>''/percorso/del/file''</font>" For Read <FONT color=#B22222>Watch</font> | ||
End | |||
Public Sub <FONT color=#B22222>File_Read()</font> | |||
Dim b As Byte | Dim b As Byte | ||
| Riga 24: | Riga 25: | ||
Wend | Wend | ||
End | |||
Public Sub Button1_Click() | |||
varFile.Close | varFile.Close | ||
End | |||
| Riga 39: | Riga 41: | ||
Public Sub Form_Open() | |||
varFile1 = Open "<Font Color= | varFile1 = Open "<Font Color=darkgreen>''/percorso/del/primo/file''</font>" For Read Watch | ||
<Font Color=gray>' ''Viene associato l'oggetto ''File'' alla denominazione del proprio evento:''</font> | <Font Color=gray>' ''Viene associato l'oggetto ''File'' alla denominazione del proprio evento:''</font> | ||
<FONT color=#B22222>Object.Attach</font>(varFile1, FMain, "eventoMidi1") | <FONT color=#B22222>Object.Attach</font>(varFile1, FMain, "eventoMidi1") | ||
varFile2 = Open "<Font Color= | varFile2 = Open "<Font Color=darkgreen>''/percorso/del/secondo/file''</font>" For Read Watch | ||
<Font Color=gray>' ''Viene associato l'oggetto ''File'' alla denominazione del proprio evento:''</font> | <Font Color=gray>' ''Viene associato l'oggetto ''File'' alla denominazione del proprio evento:''</font> | ||
<FONT color=#B22222>Object.Attach</font>(varFile2, FMain, "eventoMidi2") | <FONT color=#B22222>Object.Attach</font>(varFile2, FMain, "eventoMidi2") | ||
End | |||
<Font Color=gray>' ''Vengono intercettati i dati provenienti dal primo file:''</font> | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal primo file:''</font> | ||
Public Sub eventoMidi1_Read() | |||
Dim b1 As Byte | Dim b1 As Byte | ||
| Riga 60: | Riga 63: | ||
Print b1 | Print b1 | ||
End | |||
<Font Color=gray>' ''Vengono intercettati i dati provenienti dal secondo file:''</font> | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal secondo file:''</font> | ||
Public Sub eventoMidi2_Read() | |||
Dim b2 As Byte | Dim b2 As Byte | ||
| Riga 71: | Riga 75: | ||
Print b2 | Print b2 | ||
End | |||
oppure in modo analogo mediante ''Observer'': | oppure in modo analogo mediante ''Observer'': | ||
Private varFile1 As File | Private varFile1 As File | ||
| Riga 77: | Riga 81: | ||
Public Sub Form_Open() | |||
Dim oss1 As Observer | Dim oss1 As Observer | ||
Dim oss2 As Observer | Dim oss2 As Observer | ||
varFile1 = Open "<Font Color= | varFile1 = Open "<Font Color=darkgreen>''/percorso/del/primo/file''</font>" For Read Watch | ||
<Font Color=gray>' ''Viene "osservato" l'oggetto ''File'' per l'evento:''</font> | <Font Color=gray>' ''Viene "osservato" l'oggetto ''File'' per l'evento:''</font> | ||
oss1 = New <FONT color=#B22222>Observer</font>(varFile1) As "eventoMidi1" | oss1 = New <FONT color=#B22222>Observer</font>(varFile1) As "eventoMidi1" | ||
varFile2 = Open "<Font Color= | varFile2 = Open "<Font Color=darkgreen>''/percorso/del/secondo/file''</font>" For Read Watch | ||
<Font Color=gray>' ''Viene "osservato" l'oggetto ''File'' per l'evento:''</font> | <Font Color=gray>' ''Viene "osservato" l'oggetto ''File'' per l'evento:''</font> | ||
oss2 = New <FONT color=#B22222>Observer</font>(varFile2) As "eventoMidi2" | oss2 = New <FONT color=#B22222>Observer</font>(varFile2) As "eventoMidi2" | ||
End | |||
<Font Color=gray>' ''Vengono intercettati i dati provenienti dal primo file:''</font> | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal primo file:''</font> | ||
Public Sub eventoMidi1_Read() | |||
Dim b1 As Byte | Dim b1 As Byte | ||
| Riga 103: | Riga 108: | ||
Print b1 | Print b1 | ||
End | |||
<Font Color=gray>' ''Vengono intercettati i dati provenienti dal secondo file:''</font> | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal secondo file:''</font> | ||
Public Sub eventoMidi2_Read() | |||
Dim b2 As Byte | Dim b2 As Byte | ||
| Riga 114: | Riga 120: | ||
Print b2 | Print b2 | ||
End | |||
Versione delle 15:56, 10 giu 2024
Se con OPEN viene specificata la parola-chiave WATCH, allora il file viene così visto dall'interprete:
- Se almeno un byte può essere letto dal file, allora l'evento "File_Read()" viene chiamato;
- Se almeno un byte può essere scritto nel file, allora l'evento "File_Write()" viene chiamato.
Come esempio mostreremo il caso in cui viene aperto un file-device in lettura (For Read) e viene osservato specificando la parola-chiave Watch:
Private varFile As File Public Sub Form_Open() varFile = Open "/percorso/del/file" For Read Watch End Public Sub File_Read() Dim b As Byte While Not Eof(varFile) ' Fin tanto che non è giunto alla fine del file... ' ...legge il file e carica un byte nella variabile "b"... Read #varFile, b ' ...e lo mostra in console: Print b Wend End Public Sub Button1_Click() varFile.Close End
Lettura dei dati contemporaneamente da più file
Per la lettura contemporanea dei dati da più file aperti, sarà necessario coniugare l'apertura e l'osservazione del file tramite Open... For Read Watch con il Metodo "Object.Attach()" per gestire l'evento della ricezione dei dati Midi, associando l'oggetto file alla definizione dell'evento:
Private varFile1 As File Private varFile2 As File Public Sub Form_Open() varFile1 = Open "/percorso/del/primo/file" For Read Watch ' Viene associato l'oggetto File alla denominazione del proprio evento: Object.Attach(varFile1, FMain, "eventoMidi1") varFile2 = Open "/percorso/del/secondo/file" For Read Watch ' Viene associato l'oggetto File alla denominazione del proprio evento: Object.Attach(varFile2, FMain, "eventoMidi2") End ' Vengono intercettati i dati provenienti dal primo file: Public Sub eventoMidi1_Read() Dim b1 As Byte Read #varFile, b1 Print b1 End ' Vengono intercettati i dati provenienti dal secondo file: Public Sub eventoMidi2_Read() Dim b2 As Byte Read #varFile2, b2 Print b2 End
oppure in modo analogo mediante Observer:
Private varFile1 As File Private varFile2 As File Public Sub Form_Open() Dim oss1 As Observer Dim oss2 As Observer varFile1 = Open "/percorso/del/primo/file" For Read Watch ' Viene "osservato" l'oggetto File per l'evento: oss1 = New Observer(varFile1) As "eventoMidi1" varFile2 = Open "/percorso/del/secondo/file" For Read Watch ' Viene "osservato" l'oggetto File per l'evento: oss2 = New Observer(varFile2) As "eventoMidi2" End ' Vengono intercettati i dati provenienti dal primo file: Public Sub eventoMidi1_Read() Dim b1 As Byte Read #varFile1, b1 Print b1 End ' Vengono intercettati i dati provenienti dal secondo file: Public Sub eventoMidi2_Read() Dim b2 As Byte Read #varFile2, b2 Print b2 End