This is very easy case with TFileStream. When you write to it, it does not insert between but overwrite data. So if you have constant length block on start you can rewrite it anytime you want. Deleting data from the start would mean copying entire rest of file into a buffer and writing it to the start... and that is very highly unrecommended (/me imagines a 100mb file).