Суть такая: нужна либа для следующей задачи:
Есть определённый набор полей, которые периодически изменяются и которые необходимо при каждом изменении перезаписывать в файле. Так вот, есть ли библиотека, которая презаписывает измененные поля, не затрагивая остальной файл (т.е. попросту говоря, не переписывает остальные поля заново, выполняя бессмысленную работу) ?
Формат файла (xml, json или что-нибудь другое) безразличен.
Здравствуйте, anatoly1, Вы писали:
A>Есть определённый набор полей, которые периодически изменяются и которые необходимо при каждом изменении перезаписывать в файле. Так вот, есть ли библиотека, которая презаписывает измененные поля, не затрагивая остальной файл (т.е. попросту говоря, не переписывает остальные поля заново, выполняя бессмысленную работу) ? A>Формат файла (xml, json или что-нибудь другое) безразличен.
Описанное вроде попадает под сценарии использования SQLite: «SQLite is not designed to compete with Oracle. SQLite is designed to compete with fopen().»
A>Отредактировано 06.09.2014 13:02 anatoly1 . Предыдущая версия .
Здравствуйте, Qbit86, Вы писали:
Q>Описанное вроде попадает под сценарии использования SQLite: «SQLite is not designed to compete with Oracle. SQLite is designed to compete with fopen().»
Как-то тащить БД ради такой простой задачи не очень хочется. Тем более что sql-я никакого не надо.
Здравствуйте, anatoly1, Вы писали:
Q>>Описанное вроде попадает под сценарии использования SQLite: «SQLite is not designed to compete with Oracle. SQLite is designed to compete with fopen().»
A>Как-то тащить БД ради такой простой задачи не очень хочется. Тем более что sql-я никакого не надо.
Это всего один сишный файл.
SQLite уже давно занял нишу композитных файлов, благо накладных расходов — минимум, а полезностей — масса. Та же версионность...
В общем, поддерживаю QBit'а.
_____________________
С уважением,
Stanislav V. Zudin
Re: библиотека для структурированного хранения данных в файлах
Здравствуйте, anatoly1, Вы писали:
A>Как-то тащить БД ради такой простой задачи не очень хочется.
Это БД практически без СУБД. Тут нет абсолютно ничего лишнего по сравнению с другими решениями, что нужно было бы тащить.
A>Тем более что sql-я никакого не надо.
Там всего SQL'я-то — создание, чтение, добавление, удаление. Выучить четыре SQL-команды не сложнее, чем выучить эти же четыре функции в нестандартном API какой-то альтернативной библиотеки.
Здравствуйте, anatoly1, Вы писали:
A>Суть такая: нужна либа для следующей задачи: A>Есть определённый набор полей, которые периодически изменяются и которые необходимо при каждом изменении перезаписывать в файле. Так вот, есть ли библиотека, которая презаписывает измененные поля, не затрагивая остальной файл (т.е. попросту говоря, не переписывает остальные поля заново, выполняя бессмысленную работу) ? A>Формат файла (xml, json или что-нибудь другое) безразличен.
Если под Windows, то можно использовать INI-файлы, хотя они и устарели. Разумеется, если размер файла небольшой.
With best regards
Pavel Dvorkin
Re: библиотека для структурированного хранения данных в файлах
Здравствуйте, anatoly1, Вы писали:
A>Есть определённый набор полей, которые периодически изменяются и которые необходимо при каждом изменении перезаписывать в файле. Так вот, есть ли библиотека, которая презаписывает измененные поля, не затрагивая остальной файл (т.е. попросту говоря, не переписывает остальные поля заново, выполняя бессмысленную работу) ?
размер данных какой? если это килобайты, то может быть проще перезаписывать всё разом. диску вообще всё равно, время тратишь только на сериализацию
Люди, я люблю вас! Будьте бдительны!!!
Re: библиотека для структурированного хранения данных в файлах
Здравствуйте, anatoly1, Вы писали:
A>Суть такая: нужна либа для следующей задачи: A>Есть определённый набор полей, которые периодически изменяются и которые необходимо при каждом изменении перезаписывать в файле. Так вот, есть ли библиотека, которая презаписывает измененные поля, не затрагивая остальной файл (т.е. попросту говоря, не переписывает остальные поля заново, выполняя бессмысленную работу) ? A>Формат файла (xml, json или что-нибудь другое) безразличен.
Если у тебя задача минимизировать оверхед записи файлов, можно посмотреть в сторону memory-mapped-files.
С точки зрения сторонних программ — файл будет записан на диск, хотя реально данные на диске окажутся позже, как ОС решит.
С точки зрения восстановления после падения программы — тоже все хорошо.
Re: библиотека для структурированного хранения данных в файлах
Здравствуйте, anatoly1, Вы писали:
A>Суть такая: нужна либа для следующей задачи: A>Есть определённый набор полей, которые периодически изменяются и которые необходимо при каждом изменении перезаписывать в файле. Так вот, есть ли библиотека, которая презаписывает измененные поля, не затрагивая остальной файл (т.е. попросту говоря, не переписывает остальные поля заново, выполняя бессмысленную работу) ? A>Формат файла (xml, json или что-нибудь другое) безразличен.
db4objects — использовать проще простого, если не нравится sql.
Re[2]: библиотека для структурированного хранения данных в файлах
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Если под Windows, то можно использовать INI-файлы, хотя они и устарели. Разумеется, если размер файла небольшой.
Не нашёл подходящих библиотек для работы с ini-файлами.
Но я уже потом понял, что для точечной работы с файлами нужен бинарный формат.
Re[2]: библиотека для структурированного хранения данных в файлах
Здравствуйте, BulatZiganshin, Вы писали:
BZ>размер данных какой? если это килобайты, то может быть проще перезаписывать всё разом. диску вообще всё равно, время тратишь только на сериализацию
Да в пределах килобайта. Но там нужна частая перезапись плюс поддержка консистентности, т.е. постоянный вызов flush.
Re[2]: библиотека для структурированного хранения данных в файлах
Здравствуйте, anatoly1, Вы писали:
A>Да в пределах килобайта. Но там нужна частая перезапись плюс поддержка консистентности, т.е. постоянный вызов flush.
1. протрёшь диск.
2. сериализация килобайта по сравнению с ожиданием завершения записи — копейки
Люди, я люблю вас! Будьте бдительны!!!
Re[3]: библиотека для структурированного хранения данных в файлах
Ну если нужен — то нужен. Точечной работа с текстовыми файлами (то есть замена байтов "на месте") быть, конечно, не может, но задачу, поставленную тобой в исходном сообщении, эти средства решают, если данных немного.