Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при поиске файлов 
:(
    Опции темы
Monty
  Дата 29.9.2003, 05:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Цитата(Fantasist @ 29.9.2003, 03:43)
Цитата
При этом все отлично работает  ......... я случайно сам не ошибся?
Лично я в это еще не въехал


Не ошибся. Attr - это набор битовых флагов. Если файл отвечает определенному атрибуту (скрытый, директория, системный и т.п.) устанавливается соответсвующий бит в Attr.

Вот это очень интересно smile.gif
Я сделал чтобы программа выводила значение [/B]SearchRec.Attr and faDirectory[B] в файл и получается что если директория то значение 16, если не директория то 0 smile.gif ....... но не понятно почему, наверно просто я не до конца понял что такое AND:
Код
1 and 1 = 1
1 and 0 = 0
0 and 1 = 0
0 and 0 = 0

Правильно? Вроде да, но писал по памяти smile.gif .... и то это я знаю это с элетроники wink.gif ..... но как происходит тоже самое но со значениями INTEGER ?? hmmm.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
dm9
Дата 29.9.2003, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 6
Всего: 137



>но как происходит тоже самое но со значениями INTEGER ?

Побитово... 1-й с 1-ым, 2-й со 2-ым...

PS Или это шутка? :\ Такие вещи надо понимать...

Это сообщение отредактировал(а) dm9 - 29.9.2003, 10:49
PM MAIL ICQ   Вверх
Monty
Дата 29.9.2003, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Цитата(dm9 @ 29.9.2003, 09:49)
>но как происходит тоже самое но со значениями INTEGER ?

Побитово... 1-й с 1-ым, 2-й со 2-ым...

PS Или это шутка? :\ Такие вещи надо понимать...

Нет не шутка smile.gif ..... не сталкивался с этим, но:
Код
22 and 11 = 2
22 and 22 = 22
22 and 33 = 0
11 and 55 = 3

и так можно продолжать долго, только это мне не понято smile.gif ..... не вижу логики, если можно, то сложите мне это побитам =)


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
p0s0l
Дата 29.9.2003, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



22 = 10110
11 = 01011
======== AND
02 = 00010

22 = 010110
33 = 100001
========= AND
00 = 000000



--------------------
С уважением, г-н Посол.
PM   Вверх
p0s0l
Дата 29.9.2003, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



А, забыл сказать, как получаются единицы и нули:
22 = 16+4+2 = 2^4 + 2^2 + 2^1 = 10110 (нули стоят на местах 2^3 и 2^0)
11 = 8+2+1 ...

Ну блин это должны в школе рассказывать...



--------------------
С уважением, г-н Посол.
PM   Вверх
Monty
Дата 29.9.2003, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Но тогда как обьяснить это?
Цитата
if (SearchRec.Attr and faDirectory) <> 0 then begin
if (SearchRec.Name <> '' ) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..')
  then MyRemoveDir(sFileName);
  else begin


Это сообщение отредактировал(а) Monty - 29.9.2003, 19:05


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
p0s0l
Дата 29.9.2003, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Цитата
Но тогда как обьяснить это?

Monty, ну прям не знаю...
faDirectory = $10 = 16 = 00010000;
Проверкой (Attr and faDirectory) <> 0 проверяется, включен ли нужный бит в аттрибутах. Я просто так привык писать - так быстрее пишется и код получается на микроны быстрее (т.к. для сравнение с нулем быстрее, чем сравнение с к-л числом), чем такая проверка:
if (Attr and faDirectory) = faDirectory...

Хотя если faDirectory было бы комбинацией нескольких бит, то пришлось бы делать второй вариант...

Пример:
1) Attr = 00110110 (число от понта, но 4-ый бит включен, значит это каталог)
(Attr and faDirectory) = (00110110 and 00010000) = 00010000 = 16
if (16 <> 0) then ... - видно, что if сработает...

2) Attr = 00100110 (тоже самое число, но 4-ый бит выключен, это не каталог)
(Attr and faDirectory) = (00100110 and 00010000) = 00000000 = 0
if (0 <> 0) then ... - видно, что if не сработает...

Это сообщение отредактировал(а) p0s0l - 29.9.2003, 21:32


--------------------
С уважением, г-н Посол.
PM   Вверх
Monty
Дата 29.9.2003, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



p0s0l спасибо, теперь все ясно .... что какжый бит отвечает за то или иное значение атрибута smile.gif ... т.е. четвертый бит это директория ...... все ясно =)
Именно этого я не знал smile.gif ...... думал что не по битам, а по числам ........

Это сообщение отредактировал(а) Monty - 29.9.2003, 22:42


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
iZZi
Дата 30.9.2003, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 22.5.2003

Репутация: нет
Всего: нет



Вот вам кусок Windows.pas :
Код

{line 2250}
 FILE_SHARE_READ                     = $00000001;
 {$EXTERNALSYM FILE_SHARE_READ}
 FILE_SHARE_WRITE                    = $00000002;
 {$EXTERNALSYM FILE_SHARE_WRITE}
 FILE_SHARE_DELETE                   = $00000004;
 {$EXTERNALSYM FILE_SHARE_DELETE}
 FILE_ATTRIBUTE_READONLY             = $00000001;
 {$EXTERNALSYM FILE_ATTRIBUTE_READONLY}
 FILE_ATTRIBUTE_HIDDEN               = $00000002;
 {$EXTERNALSYM FILE_ATTRIBUTE_HIDDEN}
 FILE_ATTRIBUTE_SYSTEM               = $00000004;
 {$EXTERNALSYM FILE_ATTRIBUTE_SYSTEM}
 FILE_ATTRIBUTE_DIRECTORY            = $00000010;
 {$EXTERNALSYM FILE_ATTRIBUTE_DIRECTORY}
 FILE_ATTRIBUTE_ARCHIVE              = $00000020;
 {$EXTERNALSYM FILE_ATTRIBUTE_ARCHIVE}
 FILE_ATTRIBUTE_NORMAL               = $00000080;
 {$EXTERNALSYM FILE_ATTRIBUTE_NORMAL}
 FILE_ATTRIBUTE_TEMPORARY            = $00000100;
 {$EXTERNALSYM FILE_ATTRIBUTE_TEMPORARY}
 FILE_ATTRIBUTE_COMPRESSED           = $00000800;
 {$EXTERNALSYM FILE_ATTRIBUTE_COMPRESSED}
 FILE_ATTRIBUTE_OFFLINE              = $00001000;
 {$EXTERNALSYM FILE_ATTRIBUTE_OFFLINE}


Вот вам все эти аттрибуты и за что каждый отвечает. У меня дома где - то есть прога - поисковик, недоделанная, но там все работает. Там у меня были проблемы с системными папками, но потом и их пофиксил. Просто проверяйте на включенность соответствующих флагов и все.
PM MAIL   Вверх
Borland_Delphi_6
Дата 1.10.2003, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


LoneLINEss
****


Профиль
Группа: Участник Клуба
Сообщений: 2509
Регистрация: 5.11.2002
Где: in fortune dreams ...

Репутация: нет
Всего: 20



p0s0l
Сделал как ты говорил. В конце файла:
Цитата
d:\Macro Magic\Tutorial\My Macros
Exception EInOutError in module timesaver.exe at 0004E6D4.
Invalid filename.



--------------------
Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform.

Мои фотографии
PM MAIL WWW   Вверх
Dmitry V.Abramov
Дата 1.10.2003, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: 5
Всего: 4



Цитата(Borland_Delphi_6 @ 1.10.2003, 09:28)
Сделал как ты говорил. В конце файла:
Цитата
d:\Macro Magic\Tutorial\My Macros
Exception EInOutError in module timesaver.exe at 0004E6D4.
Invalid filename.

Немая сцена....

Мы все, из-за угла глазевшие за здесь происходящим (прям как в порту на погрузке, или на стройке), с нетерпением ждали завершения, а получили еще одно продолжение...

Ребята, вы уж опубликуйте целиком текст который тестируете! А то вот такие вещи "Exception EInOutError in module timesaver.exe at 0004E6D4" заставляют думать, что что-то там есть еще - слишком большой адрес для консольного приложения опубликованного в самом начале.

И потом, если есть Exception EInOutError, то почему утверждают что оно не перехватывается?
--------------------
/DVA
PM MAIL WWW   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.