Нужно строку перевести в массив байт. Как быстрее?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Нужно строку перевести в массив байт. Как быстрее?

Сообщение kibernetics » 03.03.2008 (Пн) 19:41

Гружу файл в массив байт таким образом:
Код: Выделить всё
Dim FreeNum As Integer
Dim OriginalArray() As Byte
FreeNum = FreeFile
    Open Name For Binary As #FreeNum
    ReDim OriginalArray(0 To LOF(FreeNum) - 1)
    Get #FreeNum, , OriginalArray()


Как можно сделать из обычной строки массив байт похожим способом?

Atoman
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 109
Зарегистрирован: 01.02.2008 (Пт) 6:36

Сообщение Atoman » 03.03.2008 (Пн) 19:59

Код: Выделить всё
Dim Buff() As Byte, cStroca As String
Buff = StrConv("Stroca", vbFromUnicode)
cStroca = StrConv(Buff, vbUnicode)

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 03.03.2008 (Пн) 20:34

Atoman
отлично, спасибо! не дотумкал сам...
хотя, читал где-то несерьёзные истории про StrConv...

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

Сообщение Хакер » 04.03.2008 (Вт) 0:29

И зачем тут StrConv ?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Atoman
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 109
Зарегистрирован: 01.02.2008 (Пт) 6:36

Сообщение Atoman » 04.03.2008 (Вт) 1:28

Хакер писал(а):И зачем тут StrConv ?


Человеку надо перевести строку(взятую из переменной) в вайты

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

Сообщение Хакер » 04.03.2008 (Вт) 4:42

Я знаю, что человеку нужно. Действительно, в вайты, да.

Я спросил, зачем здесь StrConv?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 04.03.2008 (Вт) 10:26

Хакер
? На что ты намекаешь?
Полагаешь можно обойтись без StrConv (естественно не городя мега-супер турбофункцию)?

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

Сообщение alibek » 04.03.2008 (Вт) 10:35

Да, если файл (массив) нужен юникодный.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Денис » 04.03.2008 (Вт) 10:38

kibernetics
А то!
Код: Выделить всё
Buff = "Stroca"
cStroca = CStr(Buff)


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

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

Сообщение alibek » 04.03.2008 (Вт) 11:02

CStr лишний.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Денис » 04.03.2008 (Вт) 11:08

Невероятно! Работает.
Код: Выделить всё
Dim Buff() As Byte, cStroca As String
Buff = "Пример на VB"
cStroca = Buff

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

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 04.03.2008 (Вт) 11:47

Юникод не требуется, более того, если это принципиально, то только цифры и точка(запятая) в строке.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 04.03.2008 (Вт) 12:18

kibernetics писал(а):Юникод не требуется, более того, если это принципиально, то только цифры и точка(запятая) в строке.


Код: Выделить всё
m =StrConv(s, vbFromUnicode)


А что с массивом-то делать собираешься? Может на деле и не нужно конвертировать...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 04.03.2008 (Вт) 12:35

Andrey Fedorov
массив хочу подсунуть компрессору Хоффмана. Жмёт почти в два раза.


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

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

Сейчас этот форум просматривают: Google-бот и гости: 36

    TopList