Зачем нужны ini файлы?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
БорисМ
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 22.11.2004 (Пн) 17:00

Зачем нужны ini файлы?

Сообщение БорисМ » 22.11.2004 (Пн) 18:48

Если я правильно понимаю, то файл ini нужен при старте или завершении программы. А не проще ли создавать текстовый файл, из которого последовательно считывать (или в который последовательно выводить) все нужные данные при помощи обычных (Line) Input и Print, чем создавать громадные модули для работы с ini файлом и мучиться с АРI?

Объясните, пожалуйста, "чайнику"...

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

Сообщение ANDLL » 22.11.2004 (Пн) 18:56

INI файлы читабельнее. Кроме того, при большом количестве параметорв работать с INI-файлами значительно проще, чем с text. А иных отличий нет - каждый выбирает то, что ему удобнее. Я, к примеру, предпочитаю XML в больших(относительно) программах и бинарные файлы в небольших(относительно) программах.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 22.11.2004 (Пн) 22:40

Мне кажется - это вопрос предпочтений. Я, допустим, когда-то давно написал класс для работы с инишниками, основанный на API и с тех пор только им и пользуюсь. А насчет plain-text и ini - просто однажды создали стандарт, по которому настройки приложения сохраняются в файлах с определенной структурой.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 22.11.2004 (Пн) 22:51

Представь себе какую-нить действительно серьезную программу - почтовый сервер, например. Думаю, можешь себе представить, сколько различных параметров конфигурирования у такого зверя может быть. Не удивлюсь, если более тысячи (просто ни разу не видел конфиг почтаря). Ну и что, ты будешь делать в каждом случае последовательное чтение с начала только для того, чтобы добраться до предпоследней строки? А ведь апишки для работы с инишниками сами поиск осуществляют. И секцию ищут, и параметр. Кстати, никто тебе не запрещает читать обычный INI как текст с помощью указанных тобой функций. Только геморно это очень, как видишь.

Оно, конечно, XML более универсален - у него может быть степень вложенности данных больше двух (группа\параметр), как это имеет место быть в случае INI. Но до чего же он, собака, избыточный...

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 23.11.2004 (Вт) 0:19

А вообще по рекомендациям Microsoft INI использовать архаично. На дворе XXI век, XML и реестр рулят 8)

To Ennor
SendMail видел???
Дык там все параметры типа
Параметр=Значение
или
Параметр {Список условий и значений им соответствующих}
просто свалены в текстовик :lol:

И настроивать его БООЛЬШОЙ гемморой, а лучше почтового сервера нет, вот и приходится...

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

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

А вообще по рекомендациям Microsoft INI использовать архаично. На дворе XXI век, XML и реестр рулят


Да глупость все это. Если мне нужен файл конфигурации который к тому-же удобно править ручками, то INI-самый один из оптимальных вариантов.

А так, где хранить настройки - это уже по месту - INI, XML, реестр, бинарный файл или просто в СУБД - в общем, где рациональней в каждом конкретном случае.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

БорисМ
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 22.11.2004 (Пн) 17:00

Сообщение БорисМ » 23.11.2004 (Вт) 16:25

Ennor писал(а):...Ну и что, ты будешь делать в каждом случае последовательное чтение с начала только для того, чтобы добраться до предпоследней строки? А ведь апишки для работы с инишниками сами поиск осуществляют. И секцию ищут, и параметр. Кстати, никто тебе не запрещает читать обычный INI как текст с помощью указанных тобой функций. Только геморно это очень, как видишь.



Вообще-то, говоря о Input и Print, я несколько утрировал. Точнее было бы сказать Get и Put, а файл открывать как файл с произвольным доступом. Тогда не нужно читать его весь, а обращаться только к нужной записи. Получается прямая аналогия с INI файлом, но не нужно класса для работы с ним, а в каждый конкретный момент работы программа будет обращаться к конкретному параметру (записи), на который я ей укажу при ее анписании.

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

Спасибо всем, кто помог внести ясность в этом вопросе!!! :wink:

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 23.11.2004 (Вт) 23:29

Насчет INI-файлов:
Товарищи, задумайтесь, а как GetPrivateProfileString получает значение...
Таким же перебором всех строк.

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

Сообщение Andrey Fedorov » 24.11.2004 (Ср) 7:50

Товарищи, задумайтесь, а как GetPrivateProfileString получает значение...
Таким же перебором всех строк.


Тем не менее это файлы настроек а не СУБД - т.е данных в них не столь уж и много. Ну а хочется с меньшим числом обращений к диску - есть возможность считать сразу секцию...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

БорисМ
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 22.11.2004 (Пн) 17:00

Сообщение БорисМ » 24.11.2004 (Ср) 13:25

Andrey Fedorov писал(а):
Товарищи, задумайтесь, а как GetPrivateProfileString получает значение...
Таким же перебором всех строк.


Тем не менее это файлы настроек а не СУБД - т.е данных в них не столь уж и много. Ну а хочется с меньшим числом обращений к диску - есть возможность считать сразу секцию...


Ага, и писать огромный модуль, чтобы рассортировать то, что считал, а заодно и замедлить скорость выполнения программы... :shock:

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

Сообщение Andrey Fedorov » 24.11.2004 (Ср) 13:45

Ага, и писать огромный модуль, чтобы рассортировать то, что считал, а заодно и замедлить скорость выполнения программы...


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

БорисМ
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 22.11.2004 (Пн) 17:00

Сообщение БорисМ » 25.11.2004 (Чт) 18:54

Andrey Fedorov писал(а):
Ага, и писать огромный модуль, чтобы рассортировать то, что считал, а заодно и замедлить скорость выполнения программы...


Откуда огромный?
Несколько строк и все обработано... От подхода зависит.


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


Вернуться в Visual Basic 1–6

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

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

    TopList  
cron