2009-10-13 74 views
0

字典通常具有索引和数据文件。我正在编写一个字典应用程序作为爱好项目。我很困惑如何在.NET中读取偏移量文件。索引文件大小为4-5 MB。获取单词的偏移量/长度值的最有效方法是什么?在.NET中读取索引文件的有效方法

编辑: 我只需要知道如何读取偏移文件,如果我有一个词搜索。即如何搜索索引文件中的一个词,以便我可以获得后续的8个字节

+0

单词如何存储在字典中? – rslite 2009-10-13 13:49:54

+0

单词被存储为ASCII字符流,如果我有偏移量并开始,我可以读取它。我需要知道如何搜索索引文件中的一个词,以便我可以获得随后的8个字节 – blitzkriegz 2009-10-13 13:52:24

回答

2

4-5兆字节的索引?没什么。将整个内容读入一个字节数组并将其作为一个MemoryStream或更恰当地解析,将全部内容解析为适当的数据结构以便快速搜索(has,b-tree等)。

+0

我无法解析它,除非我知道搜索关键字。该怎么办?我需要搜索整个5MB数据,每次我需要一个字。然后从后续字节中获取偏移量和长度,并从实际数据文件中获取?但是如何处理匹配索引文件中一个单词的子字符串的搜索关键字? – blitzkriegz 2009-10-14 10:25:39

+0

解析字典,而不是索引。字典完全是读入数组/内存流的正确大小。一旦你解析了字典,你可以把它放到一个更可口的形式。请注意,除非字典格式或内容发生更改,否则这只是您一次完成的操作。 – plinth 2009-10-14 10:30:52

3

Stream.Seek(long offset, SeekOrigin origin)将用于获得偏移量。

0

System.IO.BinaryReader有一个读取unsigned int的ReadUInt32方法。它也有不同的方法来读取二进制文件。

相关问题