Главная страница
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
7-39869
NW
2002-02-14 19:07
2002.05.13
Виртуальный логический диск


4-39890
ATLANTIDO
2002-03-04 15:02
2002.05.13
Open/save


3-39649
rvs
2002-04-17 11:38
2002.05.13
Query в Query


3-39673
sergling
2002-04-16 23:03
2002.05.13
Доступ к MSSQL


1-39769
PVN
2002-04-28 18:06
2002.05.13
2 вопроса...