Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2016, 09:16   #11
Tw1X
 
Регистрация: 05.04.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
показывай.
Я прошу прощения, я не совсем понял как вам показать. поэтому прикладываю мою попытку использования данной процедуры.
Вложения
Тип файла: rar Finddir.rar (3.4 Кб, 5 просмотров)
Tw1X вне форума Ответить с цитированием
Старый 01.05.2016, 10:52   #12
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
так и речь была о о том, что НЕЛЬЗЯ сравнивать ОДИН бит (48 and 16) со ВСЕМ блоком атрибутов.
речь шла неправильно. ибо именно так выясняется состояние отдельного бита в слове (в данном случае - в слове атрибутов): если 4-й бит установлен, значит объект является каталогом, иначе - не является.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.05.2016, 12:46   #13
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
если 4-й бит установлен,
совршенно верно, но вот если мы в блоке атрибутов "погасим" все прочие
Цитата:
sr.Attr and fadirectory
то СОВПАДЕНИЕ с ИСХОДНЫМ блоком
Цитата:
(=sr.Attr)
будет только в некоторых случаях (если НЕ БУДЕТ установлено НИ ОДНОГО ДРУГОГО атрибута). О чем велась речь в топике по ссылке. (цифры 48 16 кстати взялись именно оттуда)

если уж хочется сравнивать c исходным то
Код:
sr.Attr  or  fadirectry =sr.Arr
включение данного атрибута НЕ оказывает влияния, значит он УЖЕ установлен.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 01.05.2016 в 13:34.
evg_m вне форума Ответить с цитированием
Старый 01.05.2016, 12:51   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
будет только в некоторых случаях (если НЕ БУДЕТ установлено НИ ОДНОГО ДРУГОГО атрибута).
ну и я про то же самое: сравнение <> 0 означает, что объект является каталогом (в том числе).
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.05.2016, 13:06   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Формально:
if (sr.dwFileAttributes and faDirectory)<>0 - хотя бы один из битов маски установлен
if (sr.dwFileAttributes and faDirectory)=faDirectory - все биты маски установлены
Но, поскольку известно, что в конкретной маске только один бит установлен, то без разницы. Но второе методологически более правильно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.05.2016, 13:09   #16
Tw1X
 
Регистрация: 05.04.2011
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Формально:
if (sr.dwFileAttributes and faDirectory)<>0 - хотя бы один из битов маски установлен
if (sr.dwFileAttributes and faDirectory)=faDirectory - все биты маски установлены
Но, поскольку известно, что в конкретной маске только один бит установлен, то без разницы. Но второе методологически более правильно
тут sr типа Tsearchrec;
Tw1X вне форума Ответить с цитированием
Старый 01.05.2016, 13:18   #17
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
if (sr.dwFileAttributes and faDirectory)<>0 - хотя бы один из битов маски установлен
if (sr.dwFileAttributes and faDirectory)=faDirectory - все биты маски установлены
да неужели?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.05.2016, 13:28   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для ТС писалось. Но приятно, что и для маститых откровение
Изображения
Тип файла: jpg 000images.jpg (6.2 Кб, 33 просмотров)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.05.2016, 13:30   #19
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

это сарказм, если чо.
отпишусь-ка я, пока не началось.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.05.2016, 13:31   #20
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Сообщение от Tw1X Посмотреть сообщение
http://www.delphi-manual.ru/search-f...hp?sample=view
пользовался этим мануалом. там было условие
if (F.Attr and faDyrectory)=F.Attr
then S:='Это каталог';
на это можно ответить так
[url]http://www.gunsmoker.ru/2010/05/90.html[/url
и очень жаль что такое называют УРОКАМИ.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивный поиск папок FindFirst Lehanidze Помощь студентам 4 06.08.2009 13:13
Проблема. Поиск папок и файлов. Delphi7 Lancer Помощь студентам 3 09.04.2009 21:21
поиск файлов и папок FAiver Общие вопросы Delphi 13 09.04.2009 18:01
Поиск папок Artificial Помощь студентам 2 16.03.2008 22:30
поиск Папок Dukalis Общие вопросы C/C++ 3 17.01.2008 20:22