Форум: "Основная";
Текущий архив: 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