When using function seek() everything is read that after the index until the end of the file.
No. The seek() method only changes where reading starts from. It has no impact on where you stop reading.
If you want to seek() to the start of the nth record, all records need to be the same length. If, after seeking, you only want to read one record, well, you know how long the records are, so you know when to stop reading.