返回首页

我必须做一个小型的项目,在C网吧管理。因此,我需要的源代码,二进制文件删除一个特定的记录。我用fstream的类的对象,其操作。请建议我为它的代码..

回答

评论会员:enhzflep 时间:2012/02/04
。除非你打算保持冗余信息的方式做到这一点,是重新写的二进制文件,只需ommitting你想删除的记录

这是相当困难的建议没有文件结构的知识,或位于文件中的记录方法的一个很好的解决方案。

如果文件中有"目录"在它的启动类型结构,那么你可以简单地删除你想删除记录的目录条目 - 虽然这不会真正删除数据 - 而是它删除的条目的,因为它是"内容表' - 或另一种方式把它删除数据将用于定位在文件中的记录
评论会员:游客 时间:2012/02/04
SAKryukov:我想补充的解释由enhzflep的解决方案。BR}你问的是"病态"的问题。发展的可能性与二进制文件系统从基于现有的二进制文件格式的文件删除单独的记录是没有意义的。问题的决议,因为它是制定,在一般情况下,不看可行。它可以在特殊情况下(简单的例子:一个完全相同的长度记录序列)的数量是相当可行的,但我们没有这个信息相反,你可以设计从无到有,从一开始就采取随机删除单独的记录要求的文件格式。'目录'的类型由enhzflep中提到这样的设计仅仅是一个例子。mdash;水杨酸
菲利普・森
评论会员:游客 时间:2012/02/04
如果可能的话,我会建议您更换您的二进制文件与数据库或文本文件(XML),会更容易操纵这些文件另一种可能性,根据您的实际文件格式,可能只是有一个"删除"标记,然后在阅读文件时,忽略那些"洞"。如果有必要,那么你可能压缩后的文件。在实践Zhang,二进制文件一般都是性能好,如果你使用固定长度的记录,或能够对数据进行压缩,但他们在随后的修订难以操作或更新的格式。由于您的项目(网吧枭雄),我想明确表明使用一个数据库,因为它通常是这类应用的最佳选择。这是很容易添加字段,删除记录和强大的是同一个数据库(在崩溃的情况下,例如,同时节省了数据)。XML通常是更喜欢的选择一般都在有限的尺寸(几KB)的设置或项目文件