Модуль для работы с ini-файлами

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Модуль для работы с ini-файлами

Сообщение Nik » 09.07.2010 18:12:15

Собственно, есть сабж (см. вложение). Много лет использовал его в Delphi и теперь продолжаю использовать в Lazarus. Но в связи с необходимостью в будущем обеспечить кросс-платформенность одной из программ стал проверять все модули на предмет возможных проблем вполне ожидаемо обнаружил, что для работы с ini используются функции kernel32.dll (GetProfileString и т.п.).

Вопрос к знатокам: можно ли как-то сделать функции из приложенного модуля кросс-платформенными малой кровью (парсить файлы вручную, конечно, можно, но...)?

PS. Ну и все желающие могут с чистой совестью юзать модуль - мне не жалко :) Сам в своё время собрал его из разных источников (помню только, что большую часть функций взял из исходников Inno Setup :) )
Вложения
xIni.rar
(1.2 КБ) Скачиваний: 435
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 570
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Модуль для работы с ini-файлами

Сообщение Bupyc » 09.07.2010 18:33:00

Чем модуль IniFiles не подошёл?

P.S. По секрету скажу, что он кросс-платформенный. Только об этом никому :)
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Re: Модуль для работы с ini-файлами

Сообщение Nik » 09.07.2010 18:43:18

Отдельные функции, имхо, удобнее. Особенно если работа с ini-файлом идёт из разных кусков программы, а обращения - единичные. Создавать глобальный TiniFile в этом случае нелогично (лишняя память), а создавать его каждый раз - вообще извращение.

Хотя попробовать вытащить из модуля IniFiles только нужные функции - это идея, если других предложений не будет, попробую :)
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 570
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Модуль для работы с ini-файлами

Сообщение hinst » 09.07.2010 20:58:28

советую TXmlConfig. Поначалу тоже много лет пользовался ини-файлами, а потом перешёл на него
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 782
Зарегистрирован: 12.04.2008 18:32:38

Re: Модуль для работы с ini-файлами

Сообщение Nik » 09.07.2010 21:28:31

Пользовался чем-то похожим в Delphi, но - не прижилось. Неудобно править вручную :) К тому же иногда приходится работать с чужими ini-файлами, так что XML вообще не вариант.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 570
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Модуль для работы с ini-файлами

Сообщение Odyssey » 09.07.2010 22:35:10

Имхо, когда идут единичные обращения к ini-файлу из разных кусков программы -- это хороший повод для рефакторинга. Во-первых, так сложнее менять формат и источник настроек, во-вторых файл постоянно открывается/парсится/закрывается. Можно было бы читать настройки сразу в запись/объект/группу переменных, а потом уже обращаться к этим переменным. Но это так, не более чем имхо.
Odyssey
энтузиаст
 
Сообщения: 581
Зарегистрирован: 29.11.2007 17:32:24

Re: Модуль для работы с ini-файлами

Сообщение Nik » 09.07.2010 23:18:19

Odyssey
Ну, во-первых, настройки имеют свойство изменяться в разных местах программы (я терпеть не могу кнопку "Применить" в диалоге опций и считаю, что все настройки должны вступать в силу сразу же после тычка по чекбокусу, выбору из списка и т.п.). А во-вторых, ini-файлы удобны не только для хранения настроек (хотя это дело вкуса) :)
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 570
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров


Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 3

Рейтинг@Mail.ru