Arrestare temporaneamente l'intercettazione del flusso di dati da un file-device
Vai alla navigazione
Vai alla ricerca
Qualora si intenda arrestare temporaneamente l'intercettazione di dati provenienti da un file-device, senza doverlo necessariamente chiudere, potremo utilizzare almeno due modalità, di seguito descritte .
Uso di Open
Aprendo il file-device con Open, come un qualsiasi file, per bloccare temporaneamente il flusso si sfrutterà, ancorché non in modo proprio, la capacità della funzione Lock come segue:
Private fl As Stream
Public Sub Button1_Click()
' Apre (o consente nuovamente l'intercettazione dei dati, se precedentemente bloccata) il flusso di dati:
fl = Open "/percorso/del/file/device" For Read Watch
End
Public Sub File_Read()
Dim b As Byte
' Intercetta i dati dal file device:
Read #fl, b
' Li mostra in console:
Print b
End
Public Sub Button2_Click()
' Si procede a bloccare l'intercettazione del flusso di dati dal file-device.
' Si dà un percorso qualsiasi con un nome di file qualsiasi, entrambi a piacere (non importa se esiste: sarà creato dalla seguente riga di comando):
fl = Lock "/percorso/qualsiasi/con/un/nome/file"
End
Public Sub Button3_Click()
' Chiude definitivamente il flusso:
fl.Close
End
Dopo aver bloccato il flusso, per sbloccarlo basterà riaprire il flusso cliccando su Button1.
Uso di Process
Anche l'uso di Process consente di aprire, chiudere e riaprire un flusso di dati da un file-device:
Private pr As Process
Public Sub Button1_Click()
' Apre (o sblocca se precedentemente bloccato) il flusso di dati:
pr = Exec ["cat", "/percorso/del/file/device"] For Read As "processo"
End
Public Sub processo_Read()
Dim b As Byte
Read #pr, b
Print b
End
Public Sub Button2_Click()
' Chiude il flusso di dati dal processo in corso:
pr.Close
pr.Kill
End
Per riaprire il flusso basterà cliccare nuovamente su Button1.