У меня есть структура данных (B-Tree), которая хранит текст как ряд узлов, каждый из которых представляет одну строку текста. Я хотел бы сохранить текст в файле, который я мог бы синхронизировать со структурой, не переписывая весь файл для каждого редактирования. Поэтому, когда изменяется строка n моей структуры, я могу получить доступ и изменить только строку n файла, поддерживая его обновление со структурой.Формат файла для хранения текста как легко доступных строк
Может кто-нибудь указать мне в правильном направлении?
Причина этого заключается в том, что я пытаюсь сохранить состояние своей структуры, поэтому я могу восстановить после сбоя, но без накладных расходов на постоянную запись всего файла. (Может быть много данных)
Структура данных, которую я использую для хранения текста, является B-Tree. Мой вопрос заключается в том, как сохранить эту структуру в файле таким образом, который легко обновляется. – RedHatter
Вот почему я предложил использовать SQLite - он сериализует B-Tree на диск для вас. Если вы не можете использовать существующий механизм базы данных, вы можете просто сериализовать свое B-Tree как непрерывный набор кортежей '[line-id, flags, size, data]. Когда строка изменяется, вы устанавливаете флаг 'deleted' в существующий кортеж и записываете новый кортеж в конце файла. B-Tree в памяти смещается к последнему кортежу на диске. Время от времени (ежедневно?) Компактный файл, удаляя удаленные кортежи и обновляя B-Tree в памяти. –