Форум: "Основная";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];
ВнизЗапись в 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c