Dass mir das nicht früher aufgefallen ist: sizeof(datei) gibt dir nicht die anzahl records zurück, sondern die größe der filevariable. du musst filesize(datei)-1 verwenden.
Und weil wir schon dabei sind: beim schreiben eines neuen records musst du den zeiger auf filesize(datei) setzen, sonst überschreibst du ja den letzten record.
Greetz
alcaeus