Differenze tra le versioni di "Arrestare temporaneamente l'intercettazione del flusso di dati da un file-device"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Qualora si intenda arrestare temporaneamente l'intercettazione di dati provenienti da un file-device, senza doverlo necessariamente chiudere, potremo utilizzare almeno due mod...')
 
 
Riga 8: Riga 8:
 
        
 
        
 
        
 
        
  '''Public''' Sub Button1_Click()   
+
  Public Sub Button1_Click()   
 
        
 
        
 
  <FONT color=gray>' ''Apre (o consente nuovamente l'intercettazione dei dati, se precedentemente bloccata) il flusso di dati:''</font>
 
  <FONT color=gray>' ''Apre (o consente nuovamente l'intercettazione dei dati, se precedentemente bloccata) il flusso di dati:''</font>
   fl = Open "''percorso/del/file/device''" For Read Watch   
+
   fl = Open "<FONT color=darkgreen>''percorso/del/file/device''</font>" For Read Watch   
 
        
 
        
  '''End'''
+
  End
 
        
 
        
 
        
 
        
  '''Public''' Sub File_Read()   
+
  Public Sub File_Read()   
 
        
 
        
Dim by As Byte   
+
  Dim by As Byte   
 
        
 
        
 
  <FONT color=gray>' ''Intercetta i dati dal file device:''</font>   
 
  <FONT color=gray>' ''Intercetta i dati dal file device:''</font>   
Riga 26: Riga 26:
 
   Print by   
 
   Print by   
 
        
 
        
  '''End'''
+
  End
 
        
 
        
 
        
 
        
  '''Public''' Sub Button2_Click()   
+
  Public Sub Button2_Click()   
 
    
 
    
 
  <FONT color=gray>' ''Si procede a bloccare l'intercettazione del flusso di dati dal file-device.''
 
  <FONT color=gray>' ''Si procede a bloccare l'intercettazione del flusso di dati dal file-device.''
 
  ' ''<SPAN style="text-decoration:underline">Si dà un percorso qualsiasi con un nome di file qualsiasi, entrambi a piacere</span>:''</font>
 
  ' ''<SPAN style="text-decoration:underline">Si dà un percorso qualsiasi con un nome di file qualsiasi, entrambi a piacere</span>:''</font>
   fl = Lock "''percorso/qualsiasi/con/un/nome/file''"   
+
   fl = Lock "<FONT color=darkgreen>''percorso/qualsiasi/con/un/nome/file''</font>"   
 
        
 
        
  '''End'''
+
  End
 
        
 
        
 
        
 
        
  '''Public''' Sub Button3_Click()   
+
  Public Sub Button3_Click()   
 
        
 
        
 
  <FONT color=gray>' ''Chiude definitivamente il flusso:''</font>
 
  <FONT color=gray>' ''Chiude definitivamente il flusso:''</font>
 
   fl.Close   
 
   fl.Close   
 
        
 
        
  '''End'''
+
  End
 
 
 
Dopo aver bloccato il flusso, per sbloccarlo basterà riaprire il flusso cliccando su ''Button1''.
 
Dopo aver bloccato il flusso, per sbloccarlo basterà riaprire il flusso cliccando su ''Button1''.
  
Riga 55: Riga 54:
 
        
 
        
 
        
 
        
  '''Public''' Sub Button1_Click()   
+
  Public Sub Button1_Click()   
 
        
 
        
 
  <FONT color=gray>' ''Apre (o sblocca se precedentemente bloccato) il flusso di dati:''</font>
 
  <FONT color=gray>' ''Apre (o sblocca se precedentemente bloccato) il flusso di dati:''</font>
   pr = Exec ["cat", "''/percorso/del/file/device''"] For Read As "processo"
+
   pr = Exec ["cat", "<FONT color=darkgreen>''/percorso/del/file/device''</font>"] For Read As "processo"
 
        
 
        
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub processo_Read()
+
  Public Sub processo_Read()
 
   
 
   
 
  Dim by As Byte
 
  Dim by As Byte
Riga 71: Riga 70:
 
   Print by
 
   Print by
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Button2_Click()
+
  Public Sub Button2_Click()
 
   
 
   
 
  <FONT color=gray>' ''Chiude il flusso di dati dal processo in corso:''</font>
 
  <FONT color=gray>' ''Chiude il flusso di dati dal processo in corso:''</font>
 
   pr.Kill
 
   pr.Kill
 
   
 
   
  '''End'''
+
  End
 
 
 
Per riaprire il flusso basterà cliccare nuovamente su ''Button1''.
 
Per riaprire il flusso basterà cliccare nuovamente su ''Button1''.

Versione attuale delle 13:27, 23 giu 2024

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 by As Byte  
     
' Intercetta i dati dal file device:   
  Read #fl, by  
     
' Li mostra in console: 
  Print by  
      
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:
  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 by As Byte
 
 Read #pr, by

 Print by
 
End


Public Sub Button2_Click()

' Chiude il flusso di dati dal processo in corso:
  pr.Kill

End

Per riaprire il flusso basterà cliccare nuovamente su Button1.