|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.08.2011, 11:07 | #1 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
Записать в ::map ini-файл
Есть большой ini-файл, в ListView вывожу название секций, при выборе конкретной строки списка вывожу соответствующие значения ключей (текстом в ListBox). Получается, при каждом выборе строки идет обращение к ini-файлу. Можно ли предварительно весь ini-файл записать в std::map? Ключами будут названия секций (они уникальны). Все еще усложнятся из-за того, что в разных секциях бывает разное число ключей path<i>:
[section1] name = "Имя1" path0 = "c:\\path1\\" [section2] name = "Имя2" path0 = "c:\\folder\\" path1 = "c:\\folder2\\" Одним словом, нужно что-то такое: map<string, {сложная_структура} > MyMap; Если такое возможно реализовать, то как это сделать? Последний раз редактировалось Qwe1; 18.08.2011 в 11:33. |
18.08.2011, 11:38 | #2 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
то есть ключ имеет тип 1 или 2 или 3 ... я так понял
а значение Код:
Код:
вы же сами написали "разное число ключей path<i>", то бишь индекс какбы намекает, что структура может иметь такой вид Код:
|
18.08.2011, 11:48 | #3 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
Я именно в c++ не силен, диалог и вся обработка у меня идет на WinAPI, все операции по работе с ::map я бы (по возможности) реализовывал без классов. Название секций (section1, section2, ...) - это я так понимаю готовые ключи для ::map. Для "path<i>" вектор подойдет, я уже об этом думал. Получается структура данных на одну секцию. И как map использовать со структурой?
|
18.08.2011, 11:52 | #4 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Вы можете объяснить, что будет ключом, а что значением (name/path)?
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
18.08.2011, 11:59 | #5 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
А можно сделать ключом - название секций? По этому ключу получаю структуру со значениями соответствующей секции ini-файла? Например: ключ "section2", по нему нахожу элемент структуры paths (string), где будут 2 элемента (path0, path1)? Или так нельзя?
|
18.08.2011, 12:07 | #6 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Можно сделать так:
Код:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
18.08.2011, 12:21 | #7 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
А как быть с остальными значениями? Вот пример входного файла.
Последний раз редактировалось Qwe1; 18.08.2011 в 12:23. |
18.08.2011, 12:50 | #8 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
ну ключ уже как я понял будет std::string, а нет возможности перед списком paths указывать их количество?
просто без этого быдлокод выйдет. надо будет проводить анализ каждой прочитанной строчки на [ ] например. |
18.08.2011, 13:07 | #9 |
Пользователь
Регистрация: 15.05.2009
Сообщений: 29
|
Предположим, что есть количество (правда, в идеале, надо проверять - правильное или нет). Что это меняет? Типа берем все-таки вектор, а не структуру и первые 3 значения вектора считаем, что это "name", "color" и "cast", а все последующие - это "path<n>"?
|
18.08.2011, 13:20 | #10 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
будет структура, а ней вектор
поля структуры: Код:
читаете число путей. нужное число раз - push_back пути. по этому ключику data[<имя секции>] = <название структуры>(имя временной структуры) всё добавили. и всё это в цикле. ток строчки ещё парсить придется. то бишь читать только то, что после знака = |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Символьный файл F. Записать в файл G компоненты файла F в обратном порядке,сначала все нечетные, затем чётные. Паскаль. | ICE_LADY | Помощь студентам | 0 | 08.06.2011 17:32 |
Ini файл | Baaandit | Общие вопросы Delphi | 8 | 23.11.2009 14:30 |
Записать hotkey в ini | Михаил Юрьевич | Общие вопросы Delphi | 6 | 29.03.2009 22:51 |
Как записать файл в файл программы? | Хамяг | Общие вопросы Delphi | 2 | 02.11.2008 16:01 |
ini файл | Simply-Art | Общие вопросы Delphi | 3 | 17.06.2007 14:43 |