Обновление файла публикации с помощью новых данных в C#
-
20-09-2019 - |
Вопрос
Мне нужно реализовать поисковую систему. Таким образом, у меня есть словарь, который является хэш -столом, и он состоит из слов. Также у меня есть несколько текстов, мне нужно пройти все тексты и поместить в файл публикации текст и место каждого слова в текстах.
Поэтому каждый раз, когда у меня появляется какое -то слово, и это слово уже существует в файле публикации, мне нужно добавить другое появление этого слова, означающее обновление той строки, где слово находится в файле публикации. Но потому что файл публикации выглядит примерно так:
word1: 1(2,4,5) 4(66,42,21)
word2: 1(3,66) 6(12,19)
Я не могу написать что -то новое в строке 1, потому что это повлияет на строку 2, насколько я понимаю.
Итак, вопрос в том, как я это сделать? Могу ли я каким -то образом, вместо того, чтобы просто записать строки в файл, написать структуру данных? Как хэш -стол? Таким образом, для каждого слова в файле публикации будет хэш -таблица, и, если я увижу, что слово уже существует в файле публикации, я прочитаю его хэштибл, обновлю его и переписываю его в файл.
Или есть что -то лучше?
Заранее спасибо,
Грег
Решение
Вы думали об использовании XML для этого? Простая структура, такая как:
<searchkeys>
<key name="word1">
<text id="1">2,4,5</text>
<text id="4">66,42,21</text>
</key>
<key name="word2">
<text id="1">3,66</text>
<text id="6">12,19</text>
</key>
</searchkeys>
Вы можете использовать Xmldocument, XmlReader, XmlWriter, и т. Д. Классы для манипулирования файлами и получения причудливых оттуда.
Если это будет содержать много данных, вы можете рассмотреть возможность использования DB для этого (Access, MS SQL (Express или Standard), Sqllite, Mysql и т. Д.).