(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Модуль класса для работы с внешними устройствами (побитная обработка данных)

Источник: codingclub

Вашему вниманию предлагается модуль класса ByteBooolean. Этот модуль класса очень полезен тем, кто работает с внешними устройствами, когда каждый бит в байте несёт определённую информацию, и каждый бит надо анализировать и обрабатывать отдельно.

Option Compare Database
Option Explicit

Private bByte As Byte
Private bMinus As Byte

′====================================================
′Модуль класса ByteBoolean - автор Дмитрий Сонных (sonni-dim@mail.ru)
′-------------------------------------------------------------
′За основу взят модуль ByteBoolean Катцына Антона
′c www.vbrussian.com раздел примеры.
′Я добавил пару новых свойств и изменил индексы массива
′-------------------------------------------------------------
′Создайте модуль типа Class, назовите его ByteBoolean, скопируйте в него этот текст, работайте ====================================================
′Класс использует переменную типа Byte для хранения восьми переменных типа Boolean. SetByte - Устанавливает бит 0-7 значением 1 или 0 (если Value = 0 то нулем, если нет то 1) GetByte - возвращает бит 0-7 TrueIsMinus1 - свойство которое говорит, что возвращать, при значении 1(Например True в VB это -1 и что бы было сходство с Boolean ,при влюченном свойстве, 1 будет возвращатся,как -1) ====================================================
Public Sub SetByte(Index As Byte, Value As Integer) ′Устанавливает значение указанного бита в 0 или 1 On Error GoTo erro1
If Value = 0 Then
bByte = bByte And Not (2 ^ (Index))
Else
bByte = bByte Or (2 ^ (Index))
End If
exit_SetByte:
Exit Sub
erro1:
′MsgBox Err.Description
Err.Raise 666, , "Ошибка записи в ByteBoolean!" _
& " Проверьте правильность посылаемых данных!"
Resume exit_SetByte

End Sub
′----------------------------------------------------------
Public Function GetByte(Index As Byte)
′Возвращает значение запрошенного бита
Dim a
On Error GoTo erro2
a = bByte And (2 ^ (Index))
If a Then a = 1
If a = 0 Or (bMinus = 0 And a = 1) Then
GetByte = a
Else
GetByte = -a
End If
Exit Function
erro2:
Err.Raise 666, , "Ошибка чтения из ByteBoolean!" _
& " Проверьте правильность посылаемых данных!"
End Function
′-----------------------------------------------------------
Public Property Let ValueByte(ByVal NewByteValue As Byte) ′Задает новое значение массива в виде целого числа (0 - 255)
bByte = NewByteValue
End Property
′-----------------------------------------------------------
Public Property Get ValueByte() As Byte
′Выдает значение массива в виде целого числа (0 - 255)
ValueByte = bByte
End Property
′-----------------------------------------------------------
Public Property Get TrueIsMinus1() As Boolean
If bMinus = 0 Then
TrueIsMinus1() = False
Else
TrueIsMinus1() = True
End If
End Property
′------------------------------------------------------------
Public Property Let TrueIsMinus1(ByVal vNewValue As Boolean)
If vNewValue Then
bMinus = 1
Else
bMinus = 0
End If
End Property
 

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 03.06.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft 365 Business Standard (corporate)
Microsoft Windows Professional 10, Электронный ключ
Microsoft Office для дома и учебы 2019 (лицензия ESD)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Каждый день новые драйверы для вашего компьютера!
Работа в Windows и новости компании Microsoft
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100