Se il file è finito ma non è stato trovato alcun record il ciclo continua lo stesso per la clausola or, mettici un and e dovrebbe essere a posto.