我想使用C++从二进制文件中删除部件。二进制文件大约为5-10 MB.
我想做的是:
,你能给我一些建议/最佳实践,如何最有效地做到这一点?,我应该先把文件加载到内存中吗?
如何有效地搜索ANSI字符串?--我的意思是,在找到该字符串之前,可能需要跳过几兆字节的数据。>>我被告知我应该在另一个问题上问它,所以这里是:如何在二进制文件中查找ANSI字符串?
如何有效地删除n个字节并将其写入一个新文件?
好的,我不需要它是超级高效,文件不会大于10 MB和它的OK,如果它运行几秒钟。
发布于 2011-06-22 23:43:22
有许多快速字符串搜索例程比测试每个字符的性能要好得多。例如,当试图找到“某物”时,只有每九个字符需要测试。
下面是我为前面一个问题写的一个例子:对非空终止char str的标记反向搜索
发布于 2011-06-22 23:40:59
对于一个5-10MB的文件,如果您的系统支持它,我将查看一下写()。将整个文件读入内存,因为它足够小。扫描要删除的字节。传递writev() iovecs列表(它只是到读取缓冲区和长度的指针),然后可以在一个系统调用中重写整个修改的内容。
https://stackoverflow.com/questions/6447688
复制相似问题