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



    
rambler's top100 Rambler's Top100