powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / преобразование строки в байтовый массив
10 сообщений из 10, страница 1 из 1
преобразование строки в байтовый массив
    #33100732
small_red_van
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как строчку типа
Dim StrIsh="000001ИвановИ.А.000000"

преобразовать в

Dim BTArr() As Byte

Никак не найду какую функцию надо использовать в VB
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33100801
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BTArr = StrIsh
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33100815
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо уточнить, что

Код: plaintext
BTArr = StrIsh

скопирует строку StrIsh в массив BTArr без преобразования

если преобразование все-таки необходимо, то функцию придется подыскать, или написать самому.

PS
достаточно широко используемая в этом месте функция - StrConv



(с выражением лица)
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33100817
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victoshaнадо уточнить, что

Код: plaintext
BTArr = StrIsh

скопирует строку StrIsh в массив BTArr без преобразования


Я думаю, уточнить, что необходимо, должен small_red_van
Формально я ответил на поставленный фопрос.
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33101350
arseny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может так

Код: plaintext
1.
2.
3.
4.
5.
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, ByVal pSrc As String, ByVal ByteLen As Long)

Private Sub Command1_Click()
    CopyMemory BTArr( 0 ), StrIsh, Ubound(BTArr) - LBound(BTArr)
End Sub
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33103437
small_red_van
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victosha
PS
достаточно широко используемая в этом месте функция - StrConv

(с выражением лица)

да, я делаю так:
bytArr = StrConv(strText, vbFromUnicode)

правильно ли это - вот в чем вопрос!!!!
Если я правильно поняла эти манипуляции приведут к тому, что каждому i элементу массиву будет присвоен код i символа строки? так?
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33103603
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
small_red_van Victosha
PS
достаточно широко используемая в этом месте функция - StrConv

(с выражением лица)

да, я делаю так:
bytArr = StrConv(strText, vbFromUnicode)

правильно ли это - вот в чем вопрос!!!!
Если я правильно поняла эти манипуляции приведут к тому, что каждому i элементу массиву будет присвоен код i символа строки? так?


я не знаю, правда, каким боком сюда надо пристегнуть слово "правильно".
Все остальное - "правильно".
Когда Вы пишете

Код: plaintext
BTArr = StrIsh

строка копируется в массив без преобразований.
Если строка была создана в VB и содержит "нормальные читаемые
символы", то этот процесс может быть описан так:

VB последовательно копирует ASCW каждого символа строки (который
занимает два байта и имеет VB-тип int ) в байтовый массив.
Таким образом каждый символ занимает два байта.

в случае

Код: plaintext
bytArr = StrConv(strText, vbFromUnicode)

выполняется преобразование из unicode-строки в ANSI представление
по правилам текущей кодовой страницы (ее можно указать третьим
параметром).

(при условии "обычности" исходной строки) это можно представить себе как последовательное копирование в массив ASC значений символов.

До тех пор, пока ASC(currentChar) способен разместиться в одном байте
(не для всех символов это так) - в каждом байте можно считать размещенным по одному символу исходной строки.

Правильно это или нет (или с применением любых иных квалификаторов) -
зависит от того, что Вы с этим делаете или собираетесь делать дальше.


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


С наилучшими пожеланиями.
Victosha.
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33103605
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторправильно ли это - вот в чем вопрос!!!!
Проверить же очень просто

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub a(str)
    Dim b() As Byte
    Dim i As Integer
    b = StrConv(str, vbFromUnicode)
    For i =  0  To UBound(b)
        Debug.Print b(i), Chr(b(i))
    Next
End Sub

Код: plaintext
1.
2.
3.
4.
a "Марс"
  204           М
  224           а
  240           р
  241           с
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33440578
TD6370
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BTArr() = Split(StrIsh,"разделитель элементов")
...
Рейтинг: 0 / 0
преобразование строки в байтовый массив
    #33440588
TD6370
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BTArr() = Split(StrIsh,"разделитель элементов")
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / преобразование строки в байтовый массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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