Ciao Angelo,
non capisco l'utilizzo di RecNumber in fase di scrittura. Come avrai letto RAF.WriteObject è orientata ai byte nel senso che un record è determinato dall'insieme di byte che compongono l'oggetto che salvi e di conseguenza la posizione non è una sequenza 0,1,2.. ma byterec1+byterec2+byterec3..
Di conseguenza è sufficiente scrivere: f.WriteObject(rec, false , f.CurrentPosition) per memorizzare il record "rec" nella posizione corrente di "f" ed avanzarne il puntatore alla prossima posizione utile (in pratica f.CurrentPosition+dimensione in byte di rec).
Quando apri il file dati ( f.Initialize(File.DirRootExternal,"Users", False) ) questi si porta automaticamente su f.CurrentPosition=0 ovvero all'inizio del file e come detto, man mano che inserisci record la posizione si incrementa. Idem in lettura (parte da zero e si porta alla prox posizione utile dopo ogni lettura)
Da cui la mia perplessità iniziale: a che serve recnumber e, volendo, da dove arriva e come viene aggiornato UltimoRecord?
udg