Evitare l'errore "Stream chiuso" dopo aver chiuso un flusso di dati
Da Gambas-it.org - Wikipedia.
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