0
我的要求是在文件内写入二进制记录。二进制记录可以被认为是内存中的原始字节。我需要一种分隔每条记录的方式,以便我可以在文件上执行类似于二进制搜索的操作。例如,从文件中间开始,找到下一个分隔的记录并开始搜索。混合ASCII和二进制记录分隔符
我的问题是,ASCII可以用这样的“START-RECORD”来分隔二进制记录吗? 开始记录,数据长度.......二进制数据...........开始记录,数据长度.......二进制数据.... .......
从文件中的任意位置开始,我可以简单地搜索ASCII字符串“START-DATA”。这种方法是否可行?
也许你可以做这样的事情,但我不明白它有多大的帮助。如果记录被排序,二元印章只能起作用。唯一快速的方法是维护一个单独的索引,以便在没有大量文件移动/复制的情况下轻松添加数据。如果已编入索引,则不需要搜索起始字段。 – 2012-04-26 20:17:41
我同意你对二分查找的评论。但是另一种搜索方法是将文件分成任意块,然后将这些块分配给各个线程进行顺序扫描。块不必包含相同数量的记录。因此,一种方法是确定文件中的偏移量,该偏移量将包含完整记录并将这些偏移量分配给线索进行搜索 – Jimm 2012-04-26 20:21:43