Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

std::map find. Получить ключ(элемент) и как записать все данные при объявлений? - C++
Вопрос первый: как получить ключ контейнера map по данным? например: // id, name std::map&lt;int, string&gt; BookMap; BookMap bookmap; ...

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы. - C++
Не могу понять почему не работает вот этот кусок текста. ofstream q (&quot;1.part&quot;); for (int i=0; i&lt;10; ++i) { q &lt;&lt; mas ; ...

Заполнить INI файл - C++
Записываю я вот так: IniWrite(Имя файла, Секция, Ключ, Значение); bool IniWrite(char *filename, char *section, char *key, char...

как сохронять в ini файл - C++
как сохранять переменные В ini файл и как с него считывать если можно напишите пример программы

Обращение к элементам vector, который находится в map, находящийся в map - C++
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить его? map &lt;int,map&lt;int,vector&lt;int&gt; &gt;...

Трансформация xml файла в INI файл - C++
Здравствуйте. Собственно говоря, дали задание (в названии). Проблема в том, что с этим я совсем не знаком. Кто может подсказать, что и где...

3
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
18.08.2011, 13:21 #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;
0
Qwe1
1 / 1 / 0
Регистрация: 18.08.2011
Сообщений: 36
18.08.2011, 13:38  [ТС] #3
Значения только строковые, а как добавить информацию из файла в эту ::map (API-шными функциями значения ini-файла получать умею).
0
ForEveR
В астрале
Эксперт С++
7992 / 4751 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
18.08.2011, 13:52 #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;
}
0
18.08.2011, 13:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2011, 13:52
Привет! Вот еще темы с ответами:

Сохрание настроек формы в ini файл - C++
Скажите пожалуйста, как создать и сохранить в ini файл местоположение формы на экране? (с++) Заранее спасибо

Невозможно поместить строку map<string,float>pairs_map; в .h-файл - C++
Делаю проект,есть 3 файла : // project_header.h #ifndef PROJECT_HEADER_H_INCLUDED #define PROJECT_HEADER_H_INCLUDED #include...

Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std::map? - C++
Здравствуйте. Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std map? Например: std::map...

Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ? - C++
У меня есть map&lt;string, map&lt;string,int&gt;&gt;, в него надо добавить элементы (типа Ivanov potato 200) Использовать именно map&lt;string,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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