Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.20;
Скачать: [xml.tar.bz2];

Вниз

*.ini или registry?   Найти похожие ветки 

 
off   (2003-03-06 08:59) [0]

Dear Maters please help! Как пользоваться *.ini файлами и реестром вполне понятно. Но возникает вопрос есть ли принципиальная разница в их использовании, например, для сохранения положения окна при закрытии приложения. Каковы преимущества и недостатки каждого метода?


 
Palladin   (2003-03-06 09:26) [1]

Реестр - вещь операционной системы,
INI - вещь файловой системы
отсюда и делай выводы...


 
off   (2003-03-06 09:34) [2]

Спасибо, Palladin, это я прекрасно понимаю. НО хотелось бы учиться на ошибках других людей, а не на своих. Поэтому предусмотрительно интересуюсь возможными траблами. Может кто-то уже с чем-то обломался. Да и интересно по скорости доступа и безопастности, что предпочтительнее?


 
AlekseyZ   (2003-03-06 09:40) [3]

На мой взгляд лучше INI. В этом случае даже при переносе на другой компьютер, или переустановке ОС программа будет работать.


 
off   (2003-03-06 09:49) [4]

Отсюда возникает вопрос:--> Если в реестре мы можем спрятать нужные нам параметры так, что даже не всякий so called advanced user (продвинутый пользователь) найдет. А в инишке все весьма прозрачно и доступно. Так например не для кого ни секрет, что рекорды в сапёре можно было устанавливать путем редактирования файла winmine.ini, если ничего не перепутал!


 
PVOzerski   (2003-03-06 09:49) [5]

BillGates&Co настойчиво рекомендуют registry. Что же до моего личного мнения, то не слишком "развесистый" пакет должен позволять деинсталлировать себя через F8 из Нортона, по возможности не оставляя "мусора". Из чего и исхожу. Так что сам стараюсь обходиться .ini. Хотя это не всегда возможно.


 
han_malign   (2003-03-06 10:03) [6]

спрятать нужные нам параметры так, что
- если у вас параноя, то единственный выход - вирусную технологии, например - пометить Bad кластер и писать в него, или в ППЗУ, et cetera...
- а у so called advansed user - всегда под рукой RegMon, или Norton Registry Tracker...

рекорды в сапёре можно
- ну и сипользуй криптованный бинарник - никто и ломать не будет - кому ты на фиг нужен...

Будьте проще, и люди к вам потянутся (с)В.И.Ленин


 
off   (2003-03-06 10:05) [7]

Полностью с вами согласен (по поводу F8), причем не я один. Авторы, известных мне книг по Delphi 5(6) В. Гофман и А. Хомоненко, придерживаются поджобной точки зрения и советуют хранить *.ini-файлы в дирректории смаого рпиложения. На мой взгляд тоже удобнее использовать *.ini. А можно по подробнее в каких случаях "это не всегда возможно"?


 
off   (2003-03-06 10:12) [8]

To han_malign: полностью согласен. Именно так и поступил один известный мне человек: Поставил сервак на win2000 и люди потянулись. Только он этому почему-то не очень обрадовался. Может потому что г*вна всякого потом на сервере много валялось.


 
Bel   (2003-03-06 10:55) [9]

Посмотрите статью здесь http://delphi.mastak.ru/articles/saveparam/index.html , как раз по Вашему вопросу.


 
PVOzerski   (2003-03-06 10:59) [10]

>*.ini. А можно по подробнее в каких случаях "это не всегда возможно"?

Ну, меня как-то в OLE2 занесло, надо было серверное приложение из своего вызывать... Доступная документация как-то ничего другого для назначения сервера не предложила.


 
Юрий Федоров   (2003-03-06 11:02) [11]

Преимущества реестра:
1. древовидная структура - больше возможностей
2. Возможность хранения бинарных блоков.
3. Поддержка персональных настроек для текущего пользователя Windows.

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


 
PVOzerski   (2003-03-06 11:20) [12]

2 Юрий Федоров:
Да всё это при должной смекалке можно запихнуть даже в обычный текстовой .ini. Не говоря уже о том, что если не завязываться на tIniFile или WinAPI, хранить настройки можно в файле любого формата.


 
Calm   (2003-03-06 11:23) [13]


> BillGates&Co настойчиво рекомендуют registry.

В рекомендациях по разработке ПО для Win2k BillGates&Co как раз рекомендует использовать ini, а не реестр.


 
Calm   (2003-03-06 11:23) [14]

Видимо и там читали книгу В. Гофман и А. Хомоненко
:)


 
Anatoly Podgoretsky   (2003-03-06 11:46) [15]

Посмотри статью из Фидо FAQ "Q-146: Как хранить настройки программ."
Взять можно у меня на сайте

http://podgoretsky.pri.ee/ftp/Language/nps/ru.delphi.html

Она ответит на большинство вопросов как и где хранить.


 
Игорь Шевченко   (2003-03-06 11:54) [16]

Недостаток ini-файла - максимальный размер не может быть больше 64 килобайт


 
Андрей Сенченко   (2003-03-06 12:03) [17]

>> Игорь Шевченко © (06.03.03 11:54)
>> максимальный размер не может быть больше 64 килобайт

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


 
Игорь Шевченко   (2003-03-06 12:12) [18]

Андрей Сенченко © (06.03.03 12:03)

Многое сложно представить. Но можно :-)


 
Dms   (2003-03-06 13:37) [19]

Нет никакого ограничения ! Сам проверял !


 
Anatoly Podgoretsky   (2003-03-06 14:18) [20]

Как тестер ты доверия не внушаешь.
Все функии работы с с ИНИ файлами помечены как

This function is provided for compatibility with 16-bit Windows-based applications


 
Dms   (2003-03-06 14:46) [21]

и что с того ?


 
Игорь Шевченко   (2003-03-06 14:53) [22]

MSDN, October 2002:

"If an application uses the standard Windows application program interface (API) calls to access the .INI files, the limit is 64K. Examples of these standard API calls are GetPrivateProfileString() and WritePrivateProfileString().

If, for example, the WIN.INI file exceeds 64K, the information beyond 64K is ignored, and Windows may behave unpredictably--system configuration changes may not be implemented, fonts may be missing, printer information may be missing, and default information from applications may not be saved. "


 
Dms   (2003-03-06 15:01) [23]

Ну так используй TMemIniFile вместо TINIFile и все пучком будет


 
Anatoly Podgoretsky   (2003-03-06 15:01) [24]

А вот это Игорь Шевченко © (06.03.03 14:53)


 
MacX   (2003-03-06 21:03) [25]

Рекомендую реестр. Особенно если хочешь запоминать координаты окна. Настройки, общие для всех пользователей пиши в HKEY_LOCAL_MACHINE, а персональные - в HKEY_CURRENT_USER. Не забывайте, линейки win 95/98/me больше не будет, а новые windows - многопользовательские. Так что у одного пользователя окошко будет всегда в одном месте, у второго - во втором, у третьего - в третьем, и т.д.


 
MacX   (2003-03-06 21:08) [26]

Если использовать ini, то на WIN NT/2000/XP пользователи с правами обычного пользователя (т.е. не администраторы) не смогут изменить настройки, т.к. у них по умолчанию доступ к program files только для чтения.


 
Anatoly Podgoretsky   (2003-03-06 21:50) [27]

Dms (06.03.03 15:01)
TMemIniFile не является ИНИ файлом для Виндоус, он толко немного похож и частично совместим, но ни сколько не ИНИ файл. С таким же успехом можно использовать абсолютно любой формат, например двоичный, плоский файл или что либо угодно другое.


 
SeNtiMeL   (2003-03-08 02:44) [28]

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


 
На   (2003-03-08 03:00) [29]

мой взгляд, очень логично сохранить в реестре параметры, необходимые инсталлятору. Для повторной установки, апгрейда и т.п. и т. д. Прочие параметры лучше сохранять не в реестре, а уж ини или не ини, это на усмотрение автора.


 
Всяко   (2003-03-08 03:48) [30]

Не имеет значения, где, главное, правильно. Ограничение для ини в 64 кб - весьма сомнительный минус. Труда не составит создать файл с разметочной структурой в заголовке, и читать, и читать, и читать.. и даже писать. Нет проблем. Да как душе угодно.


 
ScableR   (2003-03-08 03:53) [31]

Ну, если быть еще точнее, то основные параметры храни рядом с программой в иньке, а не такие важные (положение окна & ets.) в реестре. Удобно, просто и быстро. Сам так юзаю :)


 
y-soft   (2003-03-08 14:55) [32]

Если необходима совместимость с *nix, то однозначно лучше ini, или его суррогаты. Для контроля целостности достаточно дописывать в конец файла CRC - совершенно не мешает работе стандартных функций. Для хранения древовидных структур IMHO очень удобны xml, но трюк с CRC уже не пройдет.

Если необходимо хранить двоичные данные, то реестр удобней, т.к. не требует явной конвертации в текстовый формат и обратно


 
Яков Чебунин   (2003-03-10 04:21) [33]

Для больших пакетов - реестр!!!
Для небольших - ини файл!!!

Bill Gates & Co считают виндоз безглючной системой!!!


 
off   (2003-03-10 19:01) [34]

Всем большое спасибо, я даже не ожидал полчить столько откликов. Народ вы просто молодцы. Спасибо еще раз!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.03.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.008 c
14-64289
Vladimir
2003-03-06 09:39
2003.03.20
IBInstall - как провести инсталляцию на чистой машине?


1-64224
Leviathan
2003-03-09 17:30
2003.03.20
StringGrid


14-64376
SuperMagic
2003-03-01 12:21
2003.03.20
Компоненты векторной графки


1-64156
QUE
2003-03-07 14:26
2003.03.20
Как работать с файлом справки включенным в проект ?


1-64084
basile
2003-03-10 11:20
2003.03.20
Set





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский