Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.13;
Скачать: CL | DM;

Вниз

Запись в INI файл с атрибутом только для чтения.   Найти похожие ветки 

 
Riko   (2002-04-29 14:56) [0]

Как можно сделать запись в INI файл, который имеет атрибут только для чтения?
Я при создании формы устанавливаю другой атрибут - архивный, делаю запись, а при уничтожении формы устанавливаю снова атрибут только для чтения. Но это почему-то работает нестабильно. Чаше всего ничего не записывается, хотя все идет именно в такой последовательности. Жду Ваших советов. Возможно, можно сделать запись в файл только для чтения как-то без снятия/установки атрибутов.

На всякий случай привожу фрагмент кода:

...
SetFileAttributes("C:\file.ini",faArchive); { уст. атрибут архивный }
...
WriteParams; { вызываю процедурку записи INI файла }
...
SetFileAttributes("C:\file.ini",faReadOnly); { уст. атрибут только для чтения }
...


 
Vovchik ©   (2002-04-29 15:22) [1]

Вообще-то, лучше сохранять настройки в реестре.

Ну, если очень хочется ini, то можно, конечно. А почему у тебя не получается с атрибутом - трудно сказать. Возможно, что TIniFile, которым ты наверное пользуешься, проверяет атрибут файла при присваивании имени файла его свойству FileName. Попробуй так:

SetFileAttributes("c:\file.ini",0);
inifile:=TIniFile.Create("c:\file.ini");
inifile.write.....
inifile.free;
SetFileAttributes("c:\file.ini",faReadOnly);


 
Riko   (2002-04-29 15:41) [2]

2Vovchik © (29.04.02 15:22)

Спасибо. Попробую.

Не хочется замусоривать реестр пользователя.
Это многим не ндравиться, мне тоже.


 
Anatoly Podgoretsky ©   (2002-04-29 15:54) [3]

реестр пользователя, как правило очень маленький


 
Vovchik ©   (2002-04-29 15:55) [4]

Да, это пожалуй единственный аргумент. А вот аргументы за реестр:

1. Локальные настройки для каждого пользователя.
2. При грамотно настроенной безопасности тебе не удастся (скорее всего) создать файл в каталоге, где установлена твоя прога. Это, между прочим, ошибка очень многих писателей. Они при записи в ini-файл не проверяют, что закрыт доступ. Получается exception и программа не может корректно закрыться. Это очень неприятно. А давать права каждой проге на её файл настроек - очень муторно.

Хотя аргумента всего два - всё же они очень существенны. А если боишься замусоривания - сделай кнопку "удалить настройки из реестра" и когда юзеру надоест твоя прога он сможет её удалить вместе с настройками.


 
Riko   (2002-04-29 16:00) [5]

Мужики!
Вы, конечно, извините.
Прочитайте внимательно мой вопрос!


 
Anatoly Podgoretsky ©   (2002-04-29 16:14) [6]

Мы внимательно прочитали, наверно ты попался на проблему кеша, но данных ты привел недостаточно, WriteParams терра инкогнито



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

Текущий архив: 2002.05.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
6-39823
boogier
2002-03-01 11:47
2002.05.13
Как получить список доступных в сети ресурсов компьютера по имени компьютера?


6-39806
UnderSun
2002-02-21 18:22
2002.05.13
Подскажите как программно соединится с Инетом по VPN


6-39811
YOjick
2002-02-28 15:50
2002.05.13
Что-то странное с сокетами


1-39760
Юляша
2002-04-27 21:16
2002.05.13
Почему PageControl не отображается?


1-39708
Shiza
2002-04-24 19:09
2002.05.13
Перевод из C++ в дельфи