Главная страница
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.009 c
4-39918
chernoruk
2002-03-09 05:58
2002.05.13
Убить диалоговое окно!


1-39776
alxx
2002-04-28 21:14
2002.05.13
Опять по поводу библиотеки типов


3-39668
Марина
2002-04-17 09:29
2002.05.13
Программное изменение типа поля БД


1-39783
TAV48
2002-04-28 15:22
2002.05.13
Арифметические выражения. Очень срочно надо.


3-39655
wHammer
2002-04-17 10:09
2002.05.13
ODBC Paradox 7