Устройство записи INI-файла в памяти
Вопрос
У меня есть приложение MFC, основанное на мастере.Приложение задает пользователю переменное количество вопросов, которые затем записываются в INI-файл, который позже шифруется, когда пользователь нажимает кнопку Готово.
Все анализаторы INI-файлов, которые я видел до сих пор, выполняли чтение или запись в физический файл на диске.Я не хочу этого делать, так как INI-файл содержит конфиденциальную информацию.Вместо этого я бы хотел, чтобы INI-файл находился только в памяти и никогда не записывался на диск в незашифрованном виде.
Поскольку приложение позволяет пользователям возвращаться назад и изменять ответы, мне пришло в голову, что я мог бы использовать для этой цели базу данных в памяти, но опять же, я не хочу, чтобы что-либо записывалось на диск, и не хочу отправлять базу данных с моим приложением, если этого можно избежать.
Я должен использовать INI-файл, так как этот файл, когда он не зашифрован, будет обработан третьей стороной.
Приветствуются любые предложения.
Спасибо..
Решение
У меня есть класс IniFile C ++, который позволяет вам работать с Ini-файлами в памяти:http://www.lemonteam.com/downloads/inifile.h
Это короткий, хорошо документированный одиночный файл .h.Пример использования:
IniFile if ( "myinifile.ini" );
if.SetString( "mykey", "myvalue" );
// Nothing gets actually written to disk until you call Flush(), Close() or the object is deleted
if.Flush();
if.Close();
Вы должны иметь возможность изменить метод Flush() таким образом, чтобы он применял какой-либо вид шифрования к сохраненным данным.
Другие советы
Звучит как хорошее приложение для файла, отображенного в памяти, поскольку вы можете контролировать, когда ваше представление в памяти будет сброшено обратно в файл на диске.
Зачем вам нужно иметь его в формате ini-файла, если он никогда не сохраняется на диске?
Почему бы просто не сохранить его в памяти как структуру данных и не использовать ваши обычные методы ini-файла для записи его на диск, когда вы захотите.
Если вы не хотите сохранять в файл, тогда какой смысл использовать INI file?INI API - это, в основном, пакет свойств или пара ключ-значение, основанная на файле диска.Если вы не хотите использовать file, я предлагаю вам использовать свой собственный хэш или словарную структуру данных для хранения параметров key value