Главная страница
    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.46 MB
Время: 0.008 c
14-100977
miwa
2003-07-15 23:18
2003.07.31
Кстати, где можно выкачать программы для чтения форумов?


3-100541
Jackal22
2003-07-10 18:44
2003.07.31
Архивация БД


1-100741
TALLA
2003-07-15 12:26
2003.07.31
Подскажите почему на ms.ReadBuffer постоянно Access Violation?


1-100790
sdram
2003-07-17 09:07
2003.07.31
Как вычислить выражене записанное в поле базы?


3-100632
SergeyI
2003-07-10 09:53
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский