У меня есть файл .ini, который находится внутри ресурса как RCDATA.
Я загружаю его из ресурса во время выполнения и могу получить очень длинную строку.
Мне интересно загрузить INI-файл (из ресурса во время выполнения) и проанализировать его как INI-файл с помощью Boost или Win32 API, но вопрос в том, как мне это сделать?
Кажется, что это можно сделать с помощью QT.
Я попытался загрузить файл ресурса и назначить read_ini()
двоичный файл данных / строк, но он не перебирает его потом.
Возможно ли сделать такую вещь?
HRSRC myResource = FindResource(NULL, MAKEINTRESOURCE(101), RT_RCDATA);
unsigned int myResourceSize = SizeofResource(NULL, myResource);
HGLOBAL myResourceData = LoadResource(NULL, myResource);
char* pMyBinaryData = (char*)LockResource(myResourceData);
char *text = (char*)malloc(myResourceSize + 1);
memcpy(text, pMyBinaryData, myResourceSize);
text[myResourceSize] = 0;//last char array is null
FreeResource(myResourceData);
Способ извлечения текста из файла .txt / .ini.
Я полагаю ты может быть искать
std::istringstream iss(the_large_string_value);
boost::property_tree::ptree pt;
boost::property_tree::read_ini(iss, pt);
Конечно, вы можете читать (действительно большие) ресурсы в виде потока. Boost IOstreams имеет array_source
это может помочь там.
Самая простая вещь здесь была бы
std::string the_large_resource_string_value(pMyBinaryData, myResourceSize);