Предлагаю на суд класс работы с ini

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 15.06.2008 (Вс) 18:40

Вероятно ты имел в виду Trim, но решать проблему надо не с его помощью (хотя можно и с его).

Да его я имел в виду. А с помощю чего? Replace? Или пробегать строку пока не встретим символ пробела или Tab-а?
Пишите жизнь на чистовик.....переписать не удастся.....

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 15.06.2008 (Вс) 20:25

При хранении настроек вложенность вообще не нужна (попробуй доказать, что она нужна).
Открой в блокноте *.frm. Вложенность представлена в полный рост. Открой любой .net-файл (как бы ни было противно) - там уже давно xml рулит.
Чем сложнее формат, тем сложнее его парсить.
Кого это волнует? Парсер уже есть, очень эффективный.
К тому же, на разметку тратится гораздо больше данных ( <></> против инишного [] и <></> или <=""/> против инишного =), т.е. КПИ (коэффициент полезной информации) гораздо меньше.
Экономия на спичках?
Лучший способ понять что-то самому — объяснить это другому.

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Сообщение SLIM » 15.06.2008 (Вс) 21:50

Так никто и не ответил про инструменты по xml
Пишите жизнь на чистовик.....переписать не удастся.....

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 15.06.2008 (Вс) 21:56

А вопрос был какой?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 6:46

Да его я имел в виду. А с помощю чего? Replace? Или пробегать строку пока не встретим символ пробела или Tab-а?

Нет.
Ты постоянно пытаешься сделать следующее:

"foo = bar" ---> "foo " + "=" + " bar" -------> "foo" + "=" + "bar".

А надо сразу
"foo = bar" -------> "foo" + "=" + "bar".

Открой в блокноте *.frm. Вложенность представлена в полный рост.

Да ёпт. frm -- это не файл настроек. Это файл где реально хранятся структурированные данные. И я считаю, что для этого XML действительно подходит.

Почему вы (ты и keks-n) постоянно пытаетесь доказать мне то, что я и не хотел опровергать?

Открой любой .net-файл (как бы ни было противно) - там уже давно xml рулит.

Ну там разжижжение мозга + "ешь еду своей собаки".

Кого это волнует? Парсер уже есть, очень эффективный.

Волнует это, например, меня. Очень эффективного в мире ничего вообще нет.

Экономия на спичках?

Ага
a=M&Ms
против
<option name="a" value="M&amp;Ms" />
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 16.06.2008 (Пн) 9:28

Да ёпт. frm -- это не файл настроек.
frm это не ini, однако таки файл настроек. Настроек формы. Мы же говорим об абстрактных настройках?
Волнует это, например, меня.
И только.
Ага
Имеет некоторый смысл при передаче данных через инет, но при локальном хранении - ни малейшего.
a=M&Ms
против
<option name="a" value="M&amp;Ms" />
<a>M&amp;Ms</a>
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 9:42

frm это не ini, однако таки файл настроек. Настроек формы.

Тогда всё что угодно можно назвать файлом настроек :?

Мы говорим о настройках программы. О хранении состояний всех тех флажков и переключателей, что доступны по Tools->Options.

Я заявляю, что для хранения таких (именно таких; для формы XML отлично подходит, и я поддерживаю его юзание там) настроек XML sucks у INI.

И только.

С чего ты решил? И чего ты решил, что 9 из 10 не смотрят на всё?

Имеет некоторый смысл при передаче данных через инет, но при локальном хранении - ни малейшего.

Имеет смысл главным образом при обработке, увеличивая кол-во циклов КА парсера.

<a>M&amp;Ms</a>

Код: Выделить всё
Error404=<html><body><h1>Error 404</h1>Sorry, file not found.</body></html>

Код: Выделить всё
<Error404>&lt;html&gt;&lt;body&gt;&lt;h1&gt;Error 404&lt;/h1&gt;Sorry, file not found.&lt/body&gt;&lt;/html&gt</Errpr404>


Привести пример, когда XML был бы экономичнее, чем INI ты не сможешь. Просто по той причине, что диапазон допустим сущностей в значении ini-ключа гораздо шире, чем диапазон сущностей, допустимых внутри xml-ноды.

У ini это символ перевода строки, у XML это все htmlentities.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2008 (Пн) 9:58

Хакер, а ты опять пытаешься под свою личную неприязнь подогнать факты.
В стандартном INI нельзя сохранять бинарные значения. В стандартном INI нельзя сохранять многострочные текстовые значения. В стандартном INI неудобно сохранять коллекции ключей и очень неудобно сохранять коллекции секций. Стандартный INI ограничен размером 64Кб. Достаточно?
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 10:06

В стандартном INI нельзя сохранять бинарные значения.

Речь о формате. Формат позволяет.
В стандартном INI нельзя сохранять многострочные текстовые значения.

Экранируй CRLF и храни. Формат позволяет.
В стандартном INI неудобно сохранять коллекции ключей и очень неудобно сохранять коллекции секций.

Я не совсем понимаю, что имеется в виду. Если я правильно тебя понимаю, то INI предназначен не для этого.
При хранении настроек нет нужды хранить хранить коллекции фиксированной длины. Не может быть так, что юзер возьмёт и захочет, чтобы была опция "Фон тулбара" и добавит её, или захочет, чтобы ещё небыло, и удалит.
Стандартный INI ограничен размером 64Кб.

Формат позволяет.

И я с трудом представляю себе файл настроек, который бы был больше, чем 64К.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2008 (Пн) 10:20

Хакер писал(а):Экранируй CRLF и храни. Формат позволяет.

Зачем? Ты ужасался, что в XML надо экранировать некоторые символы, а в INI необходимость экранирования почему-то ужаса не вызывает.

Хакер писал(а):Я не совсем понимаю, что имеется в виду. Если я правильно тебя понимаю, то INI предназначен не для этого.

Он нужен для хранения настроек. А количество ключей в настройках может быть динамическим.

Хакер писал(а):И я с трудом представляю себе файл настроек, который бы был больше, чем 64К.

Тогда просто поверь на слово, что бывают. Особенно если в настройках надо хранить бинарные данные (дампы) или многострочные большие тексты.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 10:30

Ты ужасался, что в XML надо экранировать некоторые символы, а в INI необходимость экранирования почему-то ужаса не вызывает.

Я ужасался не тому, что надо экранировать, а тому, сколько надо экранировтаь.

CRLF vs. &, <, >, ", и много других.

Он нужен для хранения настроек. А количество ключей в настройках может быть динамическим.

Назови мне софт, в котором бы кол-во опций было бы динамическим. Только, пожалуйста, софт который написала фирма "Тапки Джона" для бухгалтеров автосервиса "Крутые колёса", не приводи -- в таком софте и не такое быть может.

Тогда просто поверь на слово, что бывают. Особенно если в настройках надо хранить бинарные данные (дампы) или многострочные большие тексты.

Если в настройках нужно хранить многометровый лог файл, то логичнее хранить его отдельным файлом, а в настройках хранить имя этого файла.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2008 (Пн) 10:51

Хакер писал(а):CRLF vs. &, <, >, ", и много других.

', а не ". И каких других много?

Хакер писал(а):Назови мне софт, в котором бы кол-во опций было бы динамическим.

Microsoft Office пойдет?

Хакер писал(а):Если в настройках нужно хранить многометровый лог файл, то логичнее хранить его отдельным файлом, а в настройках хранить имя этого файла.

Кто говорит о log-файлах?
Это значки, сертификаты, шаблоны.
Lasciate ogni speranza, voi ch'entrate.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 16.06.2008 (Пн) 12:18

Народ, вы не находите, что пошел злостный оффтопик с холиварным оттенком? Особенно с учетом того, что данная тема поднималась минимум дважды? :twisted:
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 12:38

', а не ". И каких других много?

". " превращается в &quot;

Microsoft Office пойдет?

Microsoft Office это, кажется, пакет (состоящий из нескольких софтин), а не софт.
И где там динамическое кол-во параметров? Открываю Сервис->Параметры, вижу один и тот же набор вкладок, флажков и переключателей.

Кто говорит о log-файлах?
Это значки, сертификаты, шаблоны.

Лог был взял в качестве примера большого файла. Замени слово "лог файлы" словом "значок", "сертификат" и "шаблон".

Viper
Что делать, если народу кажется, что Хакер не любит XML, и народ пытается доказать Хакеру, что XML это здорово, но не видит, что Хакер на самом деле любит XML, но является противником его использования везде где только можно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2008 (Пн) 13:08

Хакер писал(а):И где там динамическое кол-во параметров? Открываю Сервис->Параметры, вижу один и тот же набор вкладок, флажков и переключателей.

А для тебя параметры — это только то, что находится в "Сервис" - "Параметры"?
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 13:14

В данной теме обсуждаются именно такие параметры.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2008 (Пн) 13:27

Нет. Ширина столбцов и критерии сортировки в списках, расположение и внешний вид панелей инструментов, это все — параметры.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 13:41

Речь не идёт о том, что называть параметрами а что нет.

Речь идёт о том классе параметров, которые aka опции, которые можно представить плоским списком.

Спор начался из-за того, что keks-n предложил использовать XML для той цели, для которой используется INI (хранить внешний вид пенелей инструментов в INI и так никто не собирался, и никто не спорить, что здесь XML в разы лучше, чем INI).

То, что хранить структуру формы или структуру тулбаров (или какие-либо другие структурированные данны) в XML лучше чем в INI -- никто не спорил (но здесь я буду спорить, что XML - сакс, по сравнению с тем же XF).

Но вот касательно хранения фиксированного плоского списка параметров, кто докажет мне, что здесь XML лучше?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2008 (Пн) 13:52

Хакер, у тебя это хобби, фантазировать, домысливая несуществующие уточнения и подгоняя их по свои аргументы.
Речь шла о хранении настроек. Разных. Любых.
Теперь ты будешь говорить, что ты имел ввиду именно фиксированный небольшой список заранее определенных параметров скалярного типа.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.06.2008 (Пн) 13:58

Из моего поста
При хранении настроек вложенность вообще не нужна (попробуй доказать, что она нужна).

Если только ради собственного удобства (типа Level относится к Sound), но это легко решается даванием параметру имени "Sound.Level".

должно было стать понятно, что я имел в виду под настройками именно то, что я имею в виду сейчас.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 16.06.2008 (Пн) 14:05

Разве что телепатам.
Лучший способ понять что-то самому — объяснить это другому.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 16.06.2008 (Пн) 14:09

ini, xml... Вы чего, ребята? Для хранения настроек есть реестр. Он прекрасно подходит для этих целей, потому что для этих целей и создавался!
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.06.2008 (Пн) 14:45

Денис, это совершенно разные вещи.
Текстовые конфиги принципиально отличаются от бинарных тем, что для их редактирования не нужно никаких специальных инструментов.
Lasciate ogni speranza, voi ch'entrate.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 16.06.2008 (Пн) 16:35

Денис
Platform SDK: RegSetValueEx писал(а):Value sizes are limited by available memory. Long values (more than 2048 bytes) should be stored as files with the file names stored in the registry.
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 17.06.2008 (Вт) 12:07

Денис писал(а):ini, xml... Вы чего, ребята? Для хранения настроек есть реестр. Он прекрасно подходит для этих целей, потому что для этих целей и создавался!


Опять лажа.

Практически все настройки можно где угодно - от ini-файла до базы данных. Пихать весь мусор в реестр далеко не всегда разумно. К тому-же пользователь может хотеть работать с любой машины со своими настройками.

А конкретно INI-файл удобен для его просмотра/редактирования ПОЛЬЗОВАТЕЛЕМ. Лично я совершенно не хотел бы копаться в XML-ке, открыв ее блокнотом, чтобы найти и изменить в ней несколько строчек.

При наличии же интерфейса для задания настроек - мне совершенно безразлично в каком формате хранит их программа.

XML-ки же удобней для межплатформенного использования. К примеру, нужно чтобы проект на NET открылся под разными платформами (Windows, Unix)... Но не для ручной правки, как INI.

В общем, не надо идеализировать какой-то именно формат - просто все должно быть к месту.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 17.06.2008 (Вт) 14:51

Andrey Fedorov
А чем XML не удобен для правки?
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.06.2008 (Вт) 14:57

В XML часто бывают длинные строки. И в XML надо экранировать некоторые символы.
Вообщем мелочи, но неудобства есть.
Lasciate ogni speranza, voi ch'entrate.

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Сообщение Zenitchik » 17.06.2008 (Вт) 15:35

А чем XML не удобен для правки?

Тем самым КПИ, который до лампочки современным компам, но совершенно небезразличен юзеру.
Кроме того, в случае задания значения параметра, коснтрукция присвоения принципиально нагляднее, тега.

П.С.: Лично я юзаю config.txt собстевнного ini-подобного формата :lol: Мне так проще.
Последний раз редактировалось Zenitchik 17.06.2008 (Вт) 15:37, всего редактировалось 1 раз.
Знание английского языка - затрудняет понимание кода

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.06.2008 (Вт) 15:37

КПИ не до лампочки современным компам. Даже самый современный комп буде парсить файл с меньшем КПИ дольше, чем файл с высоким КПИ.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Сообщение Zenitchik » 17.06.2008 (Вт) 15:40

Хакер писал(а):будет парсить файл с меньшем КПИ дольше, чем файл с высоким КПИ.

Я имел ввиду, что разница между "я нажал - он сделал" и "только я нажал - он тут же сделал" заметна все меньше.
Знание английского языка - затрудняет понимание кода

Пред.След.

Вернуться в Народный треп

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

Сейчас этот форум просматривают: Google-бот и гости: 75

    TopList