我目前正在编写一个文件页面管理程序,它基本上是将二进制文件写入,追加和读取页面。对于写作功能,我必须删除指定页面的全部内容并写入新内容。我需要删除特定范围内的文件中的数据,例如将数据从位置30删除到位置4096.如何根据偏移量从文件中删除数据?
2
A
回答
0
删除文件中的数据的唯一方法是将其标记为已删除。使用某个值来表示该部分被删除。否则,将要保存的部分复制到新文件中。
1
如果位置4096之后没有更多数据,则可以使用truncate(2)将文件缩小为30个字节。
如果4096字节后有更多的数据,那么你可以首先用第4096字节后出现的数据覆盖从位置30开始的数据。然后你可以将文件截断为[original_filesize - (4096-30)]个字节。
0
那么容易std::string
以下步骤:
读取该文件,并将其解压到的std :: string
std::ifstream input_file_stream("file");
const unsigned size_of_file = input_file_stream.seekg(0, std::ios_base::end).tellg();
input_file_stream.seekg(0, std::ios_base::beg); // rewind
std::string whole_file(size_of_file, ' '); // reserved space for the whole file
input_file_stream.read(&* whole_file.begin(), size_of_file);
然后删除你想要什么:
// delete with offset
whole_file.erase(10, // size_type index
200); // size_type count
并最终写入新文件:
// write it to the new file:
std::ofstream output_file_stream("new_file");
output_file_stream.write(&*whole_file.begin(), whole_file.size());
output_file_stream.close();
input_file_stream.close();
相关问题
- 1. 如何根据日期和偏移量删除记录
- 2. 从偏移量中选择一部分数据从偏移量到偏移量
- 3. 从matplotlib中删除偏移量
- 4. 如何根据条件从矢量中删除元素?
- 5. 根据两个字符串的偏移量删除一段文本
- 6. jquery根据变量从dom中删除
- 7. 根据静态文件中的数据从动态文件中删除文本
- 8. 如何根据子集函数从数据框中删除行?
- 9. 根据点偏移量计算方向
- 10. InputStream从偏移量读取数据
- 11. 熊猫:如何根据列表从数据框中删除行?
- 12. 如何根据匹配数据从csv中删除行
- 13. 轻量级迁移后如何从核心数据中删除数据
- 14. 根据sql条件从表中删除
- 15. 根据条件从DataTable中删除行
- 16. 根据属性数从表中删除
- 17. 根据条件删除数据行
- 18. 根据条件删除熔化数据
- 19. 如何删除iPhone从plist文件删除数据
- 20. 根据条件从数据表中删除行
- 21. 根据多个条件从DF中删除数据
- 22. Spark - Scala - 根据条件从数据框中删除列
- 23. 从TortoiseHG数据源中删除文件
- 24. 从文件流中删除数据
- 25. 从HDF5文件中删除数据
- 26. 从文件中删除元数据
- 27. 从文件中删除数据
- 28. 从数据库中删除文件夹
- 29. 根据tableB上的数据从tableA批量删除
- 30. 根据文本文件删除目录
我可以使用什么样的性格来表示一个字符已被删除或从这一点也没有更多的数据看? – daniel