Главная страница
    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.45 MB
Время: 0.004 c
1-39713
Chilly Willy
2002-04-24 18:22
2002.05.13
Чтение текстового файла, открытого другой программой.


1-39797
ProfiUgl
2002-04-29 09:10
2002.05.13
Боращение к компоненту расположенному на другой форме


1-39741
Smithson
2002-04-27 11:55
2002.05.13
Вопрос по потокам


1-39749
Anton+
2002-04-27 19:27
2002.05.13
Строка в Memo


1-39773
Александр_30
2002-04-26 13:28
2002.05.13
Изменение бордюра компонента





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