Differenze tra le versioni di "Evitare l'errore "Stream chiuso" dopo aver chiuso un flusso di dati"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "In taluni casi il codice torna a eseguire una riga contenente una variabile di tipo ''File'' o ''Stream'' oppure ''Process'' in una fase, in cui ormai il flusso di dati è sta...")
 
 
Riga 18: Riga 18:
 
     fl.Close
 
     fl.Close
 
    
 
    
  <FONT Color=gray>' ''Assegna all'Oggetto gestore del flusso il valore di defaul "Null":''</font>
+
  <FONT Color=gray>' ''Assegna all'Oggetto gestore del flusso il valore di default "Null":''</font>
 
     fl = <FONT Color=red><B>Null</b></font>
 
     fl = <FONT Color=red><B>Null</b></font>
 
    
 
    

Versione attuale delle 16:09, 27 lug 2024

In taluni casi il codice torna a eseguire una riga contenente una variabile di tipo File o Stream oppure Process in una fase, in cui ormai il flusso di dati è stato già chiuso con l'istruzione Close o con il Metodo ".Close()" di uno dei citati Oggetti che gestiscono un flusso.
In questa circostanza sarà sollevato un errore che ci avverte che lo Stream è chiuso.
Per evitare questo errore, dopo la chiusura del flusso di dati si potrà assegnare esplicitamente alla variabile di gestione del flusso il valore di default "Null", e controllare lo status dell'Oggetto gstore del flusso mediante la funzione nativa "IsNull()".

Mostriamo un semplice esempio:

Public Sub Main()

  Dim fl As File
  Dim b As Byte

  fl = Open "/percorso/di/un/file" For Read 


  While Not IsNull(fl)   ' Se l'Oggetto gestore del flusso "non" è nullo, allora il ciclo continua

    Read #fl, b

    fl.Close
 
' Assegna all'Oggetto gestore del flusso il valore di default "Null":
    fl = Null
 
  Wend

  
  Print "Errore evitato !"

End