Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.004 c
1-39734
Vint
2002-04-27 15:58
2002.05.13
TTable


7-39879
yuger
2002-02-11 10:24
2002.05.13
Кто может подкмнуть описание ф-ции SetupDiChangeState?


6-39820
Piriken
2002-02-22 18:14
2002.05.13
Правка HTML-документа


1-39775
VCL
2002-04-15 21:48
2002.05.13
Обработка вставки из буфера


1-39697
kpbIcoBOY
2002-04-26 23:07
2002.05.13
форму в BMP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский