Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Qwe1
1 / 1 / 0
Регистрация: 18.08.2011
Сообщений: 32
#1

Записать в ::map ini-файл - C++

18.08.2011, 13:10. Просмотров 1094. Ответов 3
Метки нет (Все метки)

Есть большой ini-файл, в ListView вывожу название секций, при выборе конкретной строки списка вывожу соответствующие значения ключей (текстом в ListBox). Получается, при каждом выборе строки идет обращение к ini-файлу. Можно ли предварительно весь ini-файл записать в ::map? Ключами будут названия секций (они уникальны). Все еще усложнятся из-за того, что в разных секциях бывает разное число ключей path<i>. Пример файла во вложении. Одним словом, нужно что-то такое:
map<string, {сложная_структура} > MyMap;
Если такое возможно реализовать, то как это сделать?
Вложения
Тип файла: txt example.ini.txt (340 байт, 28 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2011, 13:10     Записать в ::map ini-файл
Посмотрите здесь:

C++ Невозможно поместить строку map<string,float>pairs_map; в .h-файл
как сохронять в ini файл C++
C++ std::map find. Получить ключ(элемент) и как записать все данные при объявлений?
C++ создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы.
Дан символьный файл f. Записать в файл g компоненты файла f в обратном порядке C++
Сохрание настроек формы в ini файл C++
C++ Как вставить map в map
C++ Заполнить INI файл
C++ Emplace в std::map. Как добавить элемент в std::map без копирования?
Трансформация xml файла в INI файл C++
C++ Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std::map?
Обращение к элементам vector, который находится в map, находящийся в map C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
18.08.2011, 13:21     Записать в ::map ini-файл #2
Qwe1, Значения только строковые?

C++
1
typedef std::map<std::string, std::vector<std::string> > MyMap;
или если с разбитием.

C++
1
2
3
4
5
6
7
struct section
{
   std::string key;
   std::string value;
};
 
typedef std::map<std::string, std::vector<section> > MyMap;
Qwe1
1 / 1 / 0
Регистрация: 18.08.2011
Сообщений: 32
18.08.2011, 13:38  [ТС]     Записать в ::map ini-файл #3
Значения только строковые, а как добавить информацию из файла в эту ::map (API-шными функциями значения ini-файла получать умею).
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
18.08.2011, 13:52     Записать в ::map ini-файл #4
Qwe1,

Ну как бэ что-то вроде.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
typedef std::pair<std::string, std::vector<std::string> > res_pair;
 
res_pair parse_section(std::ofstream& ofs)
{
    std::string key_section;
    //Считали ключ секции и положили в key_section
    std::vector<std::string> values;
    std::string value;
    //Считываем либо все сразу, либо по одному циклом в какую-нибудь переменную. Пусть будет value.
    values.push_back(string);
    return res_pair(key_section, values);
}
 
MyMap parse_file(const std::string& f_name)
{
    MyMap mp;
    //Открыли файл. Циклом бегаем по файлику.
    while(!ifs)
    {
        mp.insert(parse_section(ifs));
    }
    return mp;
}
Yandex
Объявления
18.08.2011, 13:52     Записать в ::map ini-файл
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru