Как грамотно записать строку байтов в массив?

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

Как грамотно записать строку байтов в массив?

Сообщение Dimon111 » 04.05.2008 (Вс) 10:02

Иными словами как грамотно сделать это:

Код: Выделить всё
TRL2(262145) = &H12
TRL2(262146) = &HCB
TRL2(262147) = &H38
TRL2(262148) = &HFF
TRL2(262149) = &HFF
TRL2(262150) = &HFF
TRL2(262151) = &HFF
TRL2(262152) = &H94
TRL2(262153) = &H1E
TRL2(262154) = &H1A
TRL2(262155) = &H5F
TRL2(262156) = &H6D
TRL2(262157) = &H6C
TRL2(262158) = &H7C
TRL2(262159) = &H3B


Спасибо.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 04.05.2008 (Вс) 10:28

Циклом же!

Код: Выделить всё
Dim MyStr As String
Dim trl2(262145 To 262159) As Byte
Dim M As Integer

MyStr = "12CB38FFFFFFFF941E1A5F6D6C7C3B"

M = 1
For i = 262145 To 262159
  trl2(i) = "&H" & Mid(MyStr, M, 2)
  M = M + 2
  Debug.Print trl2(i)
Next
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Dimon111
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 154
Зарегистрирован: 28.01.2008 (Пн) 22:11

Сообщение Dimon111 » 04.05.2008 (Вс) 11:02

Спасибо. Работает.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 04.05.2008 (Вс) 11:03

Иными словами как грамотно сделать это:
Денис
А это точно грамотнее чем в первом случае?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 04.05.2008 (Вс) 12:45

ANDLL
Главное - клиент доволен. Видите - спасибо сказал. Хотя, конечно, пару оптимизаторских (оптимизационных?) трюков здесь бы можно было применить, но в зависимости от того, из какого контекста вырван этот кусок кода.

Например, можно избавиться от типа String:
Код: Выделить всё
Dim MyStr() As Byte
Последний раз редактировалось Денис 04.05.2008 (Вс) 12:55, всего редактировалось 1 раз.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

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

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

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

Dimon111
Если black-coding для тебя приемлем, можешь сбросить указатель в структуре safearray на тот интересующий тебя блок данных.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 04.05.2008 (Вс) 12:59

Ога, а Хакер в лучших традициях самого себя не привел ни строчки кода.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

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

Сообщение Хакер » 04.05.2008 (Вс) 13:02

Главное - клиент доволен. Видите - спасибо сказал. Хотя, конечно, пару оптимизаторских (оптимизационных?) трюков здесь бы можно было применить, но в зависимости от того, из какого контекста вырван этот кусок кода.


Да, спасибо сказал. Но даже не предположил, что ему впарили гадость.

Ога, а Хакер в лучших традициях самого себя не привел ни строчки кода.

Все необходимое уже приведено в первом постинге.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 04.05.2008 (Вс) 13:16

ему впарили гадость.


Не гадость, а бета-версию.

safearray


Я поискал по этому ключевому слову. Всё. Молчу. :wink:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Dimon111
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 154
Зарегистрирован: 28.01.2008 (Пн) 22:11

Сообщение Dimon111 » 04.05.2008 (Вс) 13:42

Не знал, что я оказывается умею писать. Думал мое решение не в лучших традициях.

Спасибо всем ответившим.

Dimon111
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 154
Зарегистрирован: 28.01.2008 (Пн) 22:11

Сообщение Dimon111 » 04.05.2008 (Вс) 15:15

Хакер писал(а):

Dimon111
Если black-coding для тебя приемлем, можешь сбросить указатель в структуре safearray на тот интересующий тебя блок данных.


Все до чего я мог допереть - создать Array. Вот фрагмент кода:

Код: Выделить всё
Dim TRL2(266239) As Byte, i As Long, HeadArray() As Variant
HeadArray = Array(&H12, &HCB, &H38, &HFF, &HFF, &HFF, &HFF, &H94, &H1E, &H1A, &H5F, &H6D, &H6C, &H7C, &H3B, _
&H0, &H0, &H0, &H0, &HED, &HEE, &HE2, &HFB, &HE9, &H20, &HF2, &HF0, &HE5, &HEA, &H31, &H0, &HF1, &HEE, &HE7, _
&HE4, &HE0, &HED, &H20, &HE8, &HE7, &H20, &H56, &H33, &H0, &HEB, &H3E, &H7C)
For i = 0 To UBound(HeadArray)                 'Цикл заполнения строки заголовка трека
    TRL2(i + 262145) = HeadArray(i)            'Разбор строки заголовка трека
Next
Последний раз редактировалось Dimon111 04.05.2008 (Вс) 15:19, всего редактировалось 1 раз.

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

Сообщение Хакер » 04.05.2008 (Вс) 15:17

Dimon111
Самый первый твой вариант был на порядок лучше.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.05.2008 (Пн) 8:28

Dimon111, если тебе не нравится, как твой первый вариант выглядит внешне, то внеси значения в бинарный файл, файл добавь в ресурсы и затем загружай из ресурсов.
Lasciate ogni speranza, voi ch'entrate.

Dimon111
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 154
Зарегистрирован: 28.01.2008 (Пн) 22:11

Сообщение Dimon111 » 05.05.2008 (Пн) 10:34

alibek писал(а):Dimon111, если тебе не нравится, как твой первый вариант выглядит внешне, то внеси значения в бинарный файл, файл добавь в ресурсы и затем загружай из ресурсов.


Да, наверно это будет лучший вариант. Спасибо.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

    TopList