Модуль класу для роботи із зовнішніми пристроями (побітную обробка даних)







Вашій увазі пропонується модуль класу 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
 

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*