#c# #windows #file
#c# #Windows #файл
Вопрос:
Мне нужно сохранить набор пар ключ-значение в файле. значения — это имена пользователей, а ключи должны быть автоматически сгенерированы и скрыты для пользователя (например, автоматический номер в базе данных, но мне не нужна БД) как мне это сделать?
Комментарии:
1. Просто из любопытства, почему вы не используете базу данных?
2. Поскольку приложение представляет собой САПР на базе Windows, я хочу сохранить каждый документ в виде файла для удобства обмена. Я думаю, что база данных не нужна, потому что текущий документ одновременно использует только один человек, и я не хочу устанавливать СУБД по мере установки программного обеспечения.
Ответ №1:
Если файл полностью находится под вашим контролем и записывается в него только из одного процесса одновременно, это несложно: вы просто сохраняете объект, содержащий «текущий ключ», и увеличиваете его при каждой записи.
Альтернативой автоматической нумерации является использование a Guid
, что означает, что вам не нужно сохранять какое-либо состояние — просто создайте новое Guid
для каждой записи.
Вы имели в виду именно это, или вы действительно просите помощи в разработке формата файла? Если это последнее, вы можете подумать о:
- Вам нужен индекс на диске?
- Можете ли вы сохранить весь файл в памяти, если вам нужно запросить его?
- Вам бы пригодились поля фиксированной ширины? (Если это так, вам также следует подумать о кодировке фиксированной ширины.)
- Вам нужно, чтобы это было доступно для чтения человеком?
- Вас больше интересует экономия пространства или времени? Эффективность особенно важна для вас в первую очередь?