il cursore aumenta di una posizione ad ogni ciclo, giusto?
No. eof() controlla soltanto se è stata raggiunta la fine del file. Gli avanzamenti sono impliciti in una lettura oppure con un posizionamento esplicito.
Funziona?
Solo se all'interno dell'if espliciti un riposizionamento.