Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ini


Автор: Лена 29.8.2007, 17:43
Во время работы программа создает ini такого вида:
[Voice:3]
0=DDD
[Voice:1]
0=XXX
1=OOO
[Voice:2]
0=XXX
1=ZZZ
2=OOO

и т.д.

Как при закрытии программы перестроить секции ini чтобы они шли по порядку?:
[Voice:1]
0=XXX
1=OOO
[Voice:2]
0=XXX
1=ZZZ
2=OOO
[Voice:3]
0=DDD

Автор: JackYF 29.8.2007, 18:45
Считать весь файл блоками - (заголовок + все тело), отсортировать блоки по заголовку, записать полученное в файл...

Автор: Lazin 29.8.2007, 22:11
С помощью TIniFile прочитать секции, затем отсортировать как-нибудь

можно использовать структуру вида:

String section name;//имя секции

std::list<String> records;//содержимое

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

Автор: Fazil6 29.8.2007, 22:45
Цитата(Lazin @  29.8.2007,  22:11 Найти цитируемый пост)
ини - файлы - пережиток прошлого, они ведут свою родословную начиная с MSDOS самых ранних версий

И с чего же это они утрапили свою актуальность? Текстовые файлы были намного раньше MSDOS - однако никому в голову не приходит, что это пережиток прошлого и пользоваться надо исключительно файлами мсофис. MS сама до сих пор активно использует. 
Цитата(Lazin @  29.8.2007,  22:11 Найти цитируемый пост)
в ОС Windows вместо них принято использовать реестр или xml

кем это принято? ini самый простой способ и это главное его достоинство, и используют именно такой подход ничуть не реже чем реестр или xml

Автор: Lazin 30.8.2007, 08:06
Fazil6, в ini - файл довольно проблематично сохранить сложный объект, к тому-же ini - не работает с юникодом. Их конечно можно использовать, но максимум для сохранения каких либо настроек программы. Но для этого можно использовать и реестр.
Еще у меня был случай когда один придурок сначала установил аттрибут read only ini-файла, а потом пришел жаловаться на то, что программа выдаёт ошибку во время закрытия.

Автор: ksili 30.8.2007, 09:36
И правда, зачем файл перестраивать, чтобы секции шли по порядку?
Цитата(Lazin @  30.8.2007,  03:11 Найти цитируемый пост)
вне зависимости от того как они там отсортированы к записям можно обращаться по имени и секции.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)