Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
3-100584
Григорий Ситнин
2003-06-26 16:39
2003.07.31
Трехзвенная архитектура приложения


14-100883
Nemra
2003-07-15 17:27
2003.07.31
Читаю из файла


3-100637
ord3f8h
2003-07-07 19:18
2003.07.31
Как работать с DBGrid


1-100692
LKJJed3
2003-07-18 12:11
2003.07.31
Как быть с длинными типами данных в StringGrid-е?


1-100670
Salvator
2003-07-17 22:38
2003.07.31
Работа с Dll