Evitare l'errore "Stream chiuso" dopo aver chiuso un flusso di dati
Vai alla navigazione
Vai alla ricerca
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