Использование ф-и Getattr

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Использование ф-и Getattr

Сообщение Random » 23.06.2007 (Сб) 17:22

В общем, как-то раз написал программку. :)
Так вот, в ней использовал ,- среди прочих, - фунkцию Getattr в строке кода вида:
Код: Выделить всё
If Gettatr(X) = vbDirectory Then
.....
Не секрет, что константа VbDirectory = 16. Но каково было мое недоумение, когда это простое правило не сработало. программа споткнулась о директорию, атрибут которой был равен 48(!). Констант идентичных этому я не нашел. Подскажите, плз, с чем же я столкнулся?
ЗЫ: LetAttr на директорию не распростроняется! (или да? :shock: )
:)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 23.06.2007 (Сб) 17:56

LetAttr нет в природе.
а 48 -- это vbDirectory Or vbArchive
Изображение

Random
Новичок
Новичок
Аватара пользователя
 
Сообщения: 45
Зарегистрирован: 21.02.2006 (Вт) 6:08
Откуда: Пермь

Сообщение Random » 24.06.2007 (Вс) 12:38

Биг спасибо за разъяснение.
Вот только не могу понять, существует ли болеее надежный способ отделения мух от котлет? Или пойти наиболее очевидным путем и перечислить в коде все возможные сочетания атрибутов? Ну и каша получится...
:)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.06.2007 (Вс) 12:42

Нет. Следует проверять установленность флага оператором And.

Т.е.

If zazaza And vbDirectory Then MsgBox "Это директория"
MsgBox "Атрибут <Архивный> в"+iif(zazaza And vbArchive, "", "ы")+"ключен."
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 106

    TopList