Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2010, 15:18   #1
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию чтение ini-файлов под Linux

Подскажите пожалуйста простенькую библиотеку для работы с ini файлами на СИ (С++ не предлагать) в Linux. Чем проще, тем лучше. Желательно без файла configure, чтобы просто скопировать сырцы и перекомпилировать все вместе. В нете нашел лишь очень громоздкие варианты. Вы ведь наверняка пользуетесь каким-нибудь инструментарием. Может вы сами, написали пару файликов, которые нормально работают.
В общем-то нужно только чтение, запись не нужна. Я довольно много писал на php, поэтому мне всюду мерещатся хэшь-массивы =). На входе хотелось бы видеть что-то вроде структуры, но никак себе не представляю как динамически описать такую структуру (наверное невозможно). В том плане, что имеется, к примеру, следующий ini файл:
PHP код:
[main]
param1 value1
param2 
value2
[some_module]
param1 value1
param2 
value2
param3 
value3 
Хотелось бы в результате со структурой работать, как с хэш, чтобы на выходе можно было бы работать примерно так:
PHP код:
  ...
  
ini load_ini("some_ini");
  
char *some_ptr = &ini.main.value1;
  ... 
Вполне возмножно что имею недопонимание чего-либа (либо полное не понимание проблемы ), но всё же. Возможно ли хотябы что-либо приближенное?

Последний раз редактировалось gignet; 26.06.2010 в 17:23.
gignet вне форума Ответить с цитированием
Старый 26.06.2010, 16:21   #2
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию

Ну и куда знатоки-то делись?
gignet вне форума Ответить с цитированием
Старый 26.06.2010, 18:47   #3
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

могу предложить мой класс, когда-то мне нужно было парсить ини файлы. Единственное, что он не до конца проверен. Строки должны разделяться символами \r\n (теоретические только с \n должно работать)
Конец файла тоже должен завершаться \r\n (это не доработка кода, доработать не составит труда) Не дописана функция WriteString.

Заголовочный файлы поменяете и все.
IniFile.rar
подпись
liljon вне форума Ответить с цитированием
Старый 26.06.2010, 19:11   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от gignet
Ну и куда знатоки-то делись?
Да уж проще самостоятельно написать, тем более, что только для чтения, сложного в парсере ini-файла ничего нет. Как-то писал класс для полноценной работы с ini-файлами, но только на PHP.
Arigato вне форума Ответить с цитированием
Старый 26.06.2010, 19:51   #5
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Да уж проще самостоятельно написать, тем более, что только для чтения, сложного в парсере ini-файла ничего нет. Как-то писал класс для полноценной работы с ini-файлами, но только на PHP.
Причем тут php? С чего вы взяли, что ничего сложного, если не писали сами? Думаю тут совсем не корректно сравнивать код С и PHP. Кстати, прежде чем писать велотренажер, может стоило взглянуть на http://php.net/manual/en/function.parse-ini-file.php. Тут не php ветка. Хотелось бы увидеть что-либо конструктивное. Думаю я в достаточной мере описал суть проблемы.

liljon, спасибо вам что отозвались, но ведь я явно указал, что нужен код именно на С, а не С++.
gignet вне форума Ответить с цитированием
Старый 26.06.2010, 20:11   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от gignet
Кстати, прежде чем писать велотренажер, может стоило взглянуть на
Может и стоило, а может и взглянул. Только синтаксис того ini-файла отличается от ini-файла в Windows.
Цитата:
Сообщение от gignet
С чего вы взяли, что ничего сложного, если не писали сами?
Выше же указано, что писал. Конечно, на Си пропарсить текстовый файл сложнее, чем на PHP, но ведь не на столько, что невозможно сделать.
Arigato вне форума Ответить с цитированием
Старый 26.06.2010, 20:28   #7
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Может и стоило, а может и взглянул. Только синтаксис того ini-файла отличается от ini-файла в Windows.
Выше же указано, что писал. Конечно, на Си пропарсить текстовый файл сложнее, чем на PHP, но ведь не на столько, что невозможно сделать.
Интересно, чем же там формат отличается.
Цитата:
Сообщение от Arigato Посмотреть сообщение
Может и стоило, а может и взглянул. Только синтаксис того ini-файла отличается от ini-файла в Windows.
Выше же указано, что писал. Конечно, на Си пропарсить текстовый файл сложнее, чем на PHP, но ведь не на столько, что невозможно сделать.
Кто говорит о том, сложно пропарсить или легко? Читать нужно было полностью описание. Я говорил о сложности динамического создания спарсеных переменных и их значений. Я предположил, что возможно это сделать с помощью структур. Не нужно мне объяснять как это было бы на php, я пишу на нем уже более 3 лет. Спарсить файл проблем не составляет для меня ни на php ни на CИ. Пожалуйста, если понимаете, как можно помочь, отпишитесь кодом.
gignet вне форума Ответить с цитированием
Старый 26.06.2010, 20:45   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от gignet
Интересно, чем же там формат отличается.
1-е что бросается в глаза - строковые параметры обязательно нужно заключать в кавычки. Есть еще какие-то расхождения, уже не помню, т.к. не пользуюсь данной функцией.
Цитата:
Сообщение от gignet
Пожалуйста, если понимаете, как можно помочь, отпишитесь кодом.
К сожалению, как динамически сформировать структуру - не знаю. Не уверен, что это вообще возможно.
Arigato вне форума Ответить с цитированием
Старый 26.06.2010, 21:41   #9
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

но что вам мешает переписать на си? =\
подпись
liljon вне форума Ответить с цитированием
Старый 26.06.2010, 21:55   #10
gignet
Пользователь
 
Регистрация: 04.06.2010
Сообщений: 19
По умолчанию

Цитата:
Сообщение от liljon Посмотреть сообщение
но что вам мешает переписать на си? =\
Я не очень-то разбираюсь в С++
gignet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение с INI файла. Baaandit Общие вопросы Delphi 3 26.11.2009 17:15
Чтение пароля с ini файла mish@ Общие вопросы Delphi 7 05.11.2009 10:43
чтение из ini динамических компонентов varelik Общие вопросы Delphi 2 03.09.2009 17:35
Чтение параметров из ini файла Яр|/||< (^_^) Общие вопросы Delphi 2 29.06.2009 20:54