我有一个文本文件,用于保存其中出现的文件和单词(及其频率)的索引。我需要将文件读入内存并存储单词以便可以搜索它们。该文件的格式如下:
<files> 169
0:file0.txt
1:file1.txt
2:file2.txt
3:file3.txt
... etc ...
</files>
<list> word 2
9: 10
1: 2
</list>
<list> word2 4
3: 19
5: 12
0: 2
8: 2
</list>
... etc ...
问题是这个索引文件可能会变得非常大,并且不会一次全部放入内存中。我的解决方案是一次只将其中的几个存储在 HashTable 中,然后当我需要获取另一个单词的数据时,我会踢出一个旧单词,然后从文件中解析新单词的数据。
如何在 C 中有效地完成此任务?我在想,一旦我到达某些点,我就必须对 fseek 和倒带做一些事情。
谢谢,
迈克