Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

Установка аттрибутов файла   Найти похожие ветки 

 
ss300   (2003-07-16 20:01) [0]

Подскажите мне мастера, каким образом можно программно снять аттрибут ReadOnly и Archive с файла??


 
Anatoly Podgoretsky   (2003-07-16 20:27) [1]

FileGetAttr/FileSetAttr и умение работать с битами, это к Юрию Зотову за его уроками.


 
Marser   (2003-07-16 22:08) [2]

Ну не обязательно знать двоичную систему(хотя и желательно знать и уметь :-) ). Константы для этого есть. Например, вот так:
var at:integer;
begin
at:=filegetattr("some.txt");
filesetattr("some.txt",at-faReadOnly-faArchive)
end;


 
Anatoly Podgoretsky   (2003-07-16 22:19) [3]

Именно умение работы с битами, представь что будет если в at не установлен один их этих аттрибутов. Так нельзя. Нужно не отнимать м устанавливать биты в 0.
А константы это всего лишь символические наименования соответствующих битов.


 
Marser   (2003-07-16 22:56) [4]


> А константы это всего лишь символические наименования соответствующих
> битов.

Я знаю. Тогда можно предварительно проверить, установлен ли соответствующий бит. Вот так:
if (at and faReadOnly>0)and(at and faArchive>0) then
filesetattr("some.txt",at-faReadOnly-faArchive);


 
Anatoly Podgoretsky   (2003-07-16 23:23) [5]

Все равно неверно, не соответствует задаче, не хотел приводить решение, но надеюсь, что ss300 все таки посмотрит уроки ЮЗ


begin
At := FileGetAttr("some.txt");
FileSetAttr("some.txt",at and not (faReadOnly + faArchive));
или
FileSetAttr("some.txt",at and not (faReadOnly or faArchive));
end;


 
Marser   (2003-07-16 23:42) [6]


> Все равно неверно

А тем не менее работает. Хотя ваш код, конечно, лучше.


 
Германн   (2003-07-17 02:12) [7]

2 Marser © (16.07.03 23:42)
Даже если и работает, то все равно коряво и только по счастливой случайности.
Ваш код от Marser © (16.07.03 22:56)
не пройдет, если исходно установлен только один флаг из вышеупомянутых. А код Anatoly Podgoretsky © (16.07.03 23:23) не то чтобы лучше. Он - полностью отвечает поставленной задаче и вдобавок при минимуме затрат.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
3-100544
Spawn
2003-07-10 21:39
2003.07.31
Ссылочная целостность


4-101034
СлБ
2003-05-28 08:02
2003.07.31
Создание полупрозрачной формы


6-100865
ec
2003-05-07 22:21
2003.07.31
ISAPI


7-100997
Intell
2003-04-25 07:15
2003.07.31
Как отследить местоположение чужого приложения?


3-100603
McSimm2
2003-07-09 11:34
2003.07.31
---|Ветка была без названия|---





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