Trovo che la logica con cui sono sviluppati questi cicli non abbia senso: tu scandisci un file fino ad esaurimento facendo un ciclo e testando EndOfStream, tuttavia vi sono delle possibili condizioni che possono impedire di leggere dati dal file e quindi quella condizione non verrà mai raggiunta.
Se leggi un file fino a quando questo non è finito e c'è una condizione che previene la lettura, non arriverai mai in fondo.
Per scoprire perché devi eseguire il programma passo passo facendo obbligatoriamente debugging: se non sai cos'è, ricerca e fallo.
Se dal file devi caricare informazioni specifiche facendo cicli su oggetti, allora dovrai usare un formato di file compatibile in cui, in base all'elemento corrente del ciclo (che sia un pannello o una banana) vai a individuare le informazioni che occorrono all'interno del file.
Se invece fai una scansione direttamente sul file leggendo ad esempio riga per riga, quel file deve essere consumato e il ciclo di scansione deve guidare l'esecuzione della procedura (andrai quindi a determinare il pannello o la banana in base alle informazioni che acquisisci dalla riga corrente).
E' chiaro che se apri un file e per qualche motivo non lo leggi, non arriverai mai alla sua fine.
Ciao!![]()