Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выделить байт из массива и разложить его на биты / 9 сообщений из 9, страница 1 из 1
22.07.2012, 19:16
    #37888409
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
При работе с контроллером, получаю байтовую последовательность. Мне нужно выделить из массива 10 байт и разложить его побитно, ну и вывести на TеxtBox
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim a As Variant
Winsock1.GetData a, , bytesTotal          'get message from buffer
 
Text3.Text = a(10)   '??????
End Sub



Думал хотя бы в hex выведет, но выводит 0 и все.
Думаю приходит в hex, надо его dec, а затем десятичное разложить побитно. И при выводе на TеxtBox перед a(10) нужно еще что написать???
...
Рейтинг: 0 / 0
22.07.2012, 20:03
    #37888424
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
Техник55,

5 секунд гугления
Передавай в цикле все элементы принятого массива и выводи в текст бокс
...
Рейтинг: 0 / 0
22.07.2012, 20:19
    #37888430
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
VSVLAD,
это уже переход от hex к dec
сначала бы хотелось просто увидеть что идет от контроллера, можно даже не конкретно элемент массива, а весь массив!!!
Попробовал так:
Код: vbnet
1.
2.
3.
4.
5.
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim stra As String
Winsock1.GetData a          'get message from buffer
MsgBox a
End Sub


В окошке пусто...
Либо я неправильно пишу код, либо вообще ничего не идет!!!???
...
Рейтинг: 0 / 0
22.07.2012, 20:29
    #37888436
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
> сначала бы хотелось просто увидеть что идет от контроллера, можно даже не конкретно элемент массива, а весь массив!!!

Поставьте точку останова после GetData a и смотрите в окне Locals.
...
Рейтинг: 0 / 0
22.07.2012, 20:41
    #37888442
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
КазанскийПоставьте точку останова после GetData a и смотрите в окне Locals.
как ее поставить, ни разу не делал так???
...
Рейтинг: 0 / 0
22.07.2012, 21:27
    #37888463
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
F9 или клик по серой полосе слева от кода.
Или можно поставить оператор Stop.
Освойте простые отладочные действия, они в меню Debug: F9, F8 и т.д.
...
Рейтинг: 0 / 0
23.07.2012, 00:58
    #37888555
Техник55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
Казанский, спасибо.
Все выводиться.
выводит в dec я ее преобразовал в биты: 00111111
А как добраться до конкретного бита в байте???
...
Рейтинг: 0 / 0
23.07.2012, 01:15
    #37888560
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
Заведите массив байтов с установленными битами в соотв. позиции:
Код: vbnet
1.
2.
3.
4.
5.
6.
Dim bits(0 to 7) As Byte
bits(0)=1
bits(1)=2
bits(2)=4
'...
bits(7)=128


Чтобы проверить i-й бит в байте, используйте
Код: vbnet
1.
If MyByte And bits(i) then 'установлен

Чтобы установить i-й бит в байте, используйте
Код: vbnet
1.
MyByte = MyByte Or bits(i)

Чтобы сбросить i-й бит в байте, используйте
Код: vbnet
1.
MyByte = MyByte And Not bits(i)
...
Рейтинг: 0 / 0
23.07.2012, 05:23
    #37888608
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделить байт из массива и разложить его на биты
Техник55А как добраться до конкретного бита в байте???
Недавно только обсуждали:
http://www.sql.ru/forum/actualthread.aspx?tid=944083]word [Bit 0]...[Bit 15]. Как мне из этого 2 байта сфабриковать?

И здесь еще посмотри.
Там приводилась ссылка на VBasm32.dll,
если ее использовать, то получается чуть-чуть быстрее. Я не стал, но если много битов надо считать и религия позволяет использовать подобные библиотеки, то почему бы нет.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выделить байт из массива и разложить его на биты / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]