Differenze tra le versioni di "Watch"
Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Se con ''OPEN'' viene specificata la parola chiave '''WATCH'''''Corsivo'', allora il file viene così visto dall'interprete: * Se almeno un byte può essere letto dal file, al...') |
|||
Riga 1: | Riga 1: | ||
− | Se con ''OPEN'' viene specificata la parola chiave ''' | + | 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 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. | * Se almeno un byte può essere scritto nel file, allora l'evento File_Write() viene chiamato. | ||
Riga 21: | Riga 21: | ||
− | While Not Eof(varFile) <Font Color= | + | While Not Eof(varFile) <Font Color=gray>' ''Fin tanto che non è giunto alla fine del file...''</font> |
− | <Font Color= | + | <Font Color=gray>' ''...legge il file e carica un byte nella variabile "by"...''</font> |
Read #varFile, by | Read #varFile, by | ||
− | <Font Color= | + | <Font Color=gray>' ''...e lo mostra in console:''</font> |
Print by | Print by | ||
Wend | Wend | ||
Riga 39: | Riga 39: | ||
==Lettura dei dati contemporaneamente da più file== | ==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 | + | 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''' varFile1 As File | ||
'''Private''' varFile2 As File | '''Private''' varFile2 As File | ||
Riga 47: | Riga 47: | ||
varFile1 = Open "''/percorso/del/primo/file''" For Read Watch | varFile1 = Open "''/percorso/del/primo/file''" For Read Watch | ||
− | <Font Color= | + | <Font Color=gray>' ''Viene associato l'oggetto ''File'' alla denominazione del proprio evento:''</font> |
Object.Attach(varFile1, FMain, "eventoMidi1") | Object.Attach(varFile1, FMain, "eventoMidi1") | ||
varFile2 = Open "''/percorso/del/secondo/file''" For Read Watch | varFile2 = Open "''/percorso/del/secondo/file''" For Read Watch | ||
− | <Font Color= | + | <Font Color=gray>' ''Viene associato l'oggetto ''File'' alla denominazione del proprio evento:''</font> |
Object.Attach(varFile2, FMain, "eventoMidi2") | Object.Attach(varFile2, FMain, "eventoMidi2") | ||
Riga 58: | Riga 58: | ||
− | <Font Color= | + | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal primo file:''</font> |
'''Public''' Sub eventoMidi1_Read() | '''Public''' Sub eventoMidi1_Read() | ||
Riga 70: | Riga 70: | ||
− | <Font Color= | + | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal secondo file:''</font> |
'''Public''' Sub eventoMidi2_Read() | '''Public''' Sub eventoMidi2_Read() | ||
Riga 94: | Riga 94: | ||
varFile1 = Open "''/percorso/del/primo/file''" For Read Watch | varFile1 = Open "''/percorso/del/primo/file''" For Read Watch | ||
− | <Font Color= | + | <Font Color=gray>' ''Viene "osservato" l'oggetto ''File'' per l'evento:''</font> |
oss1 = New Observer(varFile1) As "eventoMidi1" | oss1 = New Observer(varFile1) As "eventoMidi1" | ||
Riga 100: | Riga 100: | ||
varFile2 = Open "''/percorso/del/secondo/file''" For Read Watch | varFile2 = Open "''/percorso/del/secondo/file''" For Read Watch | ||
− | <Font Color= | + | <Font Color=gray>' ''Viene "osservato" l'oggetto ''File'' per l'evento:''</font> |
oss2 = New Observer(varFile2) As "eventoMidi2" | oss2 = New Observer(varFile2) As "eventoMidi2" | ||
Riga 106: | Riga 106: | ||
− | <Font Color= | + | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal primo file:''</font> |
'''Public''' Sub eventoMidi1_Read() | '''Public''' Sub eventoMidi1_Read() | ||
− | + | Dim b1 As Byte | |
− | + | Read #varFile1, b1 | |
− | + | Print b1 | |
'''End''' | '''End''' | ||
− | <Font Color= | + | <Font Color=gray>' ''Vengono intercettati i dati provenienti dal secondo file:''</font> |
'''Public''' Sub eventoMidi2_Read() | '''Public''' Sub eventoMidi2_Read() | ||
− | + | Dim b2 As Byte | |
− | + | Read #varFile2, b2 | |
− | + | Print b2 | |
'''End''' | '''End''' |
Versione delle 09:13, 10 set 2013
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) ed osservato con specificando la parola Watch:
Private varFile As File Public Sub Form_Open() varFile = Open "percorso/del/file" For Read Watch End Public Sub File_Read() Dim by As Byte While Not Eof(varFile) ' Fin tanto che non è giunto alla fine del file... ' ...legge il file e carica un byte nella variabile "by"... Read #varFile, by ' ...e lo mostra in console: Print by 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