Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Прочие языки программирования > VBS: array of unsigned bytes


Автор: trident 06.12.16, 21:50
Как обратиться к элементу массива беззнаковых байтов?

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Set oXMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    oXMLHTTP.Open "GET", URL, 0
    oXMLHTTP.Send
    b = oXMLHTTP.responseBody(0)
    MsgBox b

показывает какой то мусор.

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    MsgBox Chr(b)

вызывает ошибку "Несоответствие типa: b"

В MSDN сказано, что responseBody "Retrieves the response entity body as an array of unsigned bytes."
Как получить значения его произвольных элементов?

Автор: xNut 07.12.16, 05:44
Chr переводит число в символ
А какого чуда вы ждёте от Chr?

Автор: trident 07.12.16, 10:43
Цитата xNut @
Chr переводит число в символ
А какого чуда вы ждёте от Chr?

Что он переведет беззнаковый байт в соответствующий ему символ.

Автор: leo 08.12.16, 07:03
Цитата trident @
Как обратиться к элементу массива беззнаковых байтов?

Как обычно, по индексу - b(0), b(1) и т.д.

Цитата trident @
MsgBox Chr(b)
вызывает ошибку "Несоответствие типa: b"

Используй Chr(b(0))
Только не понятно, зачем тебе это нужно, если можно сразу получить ответ в виде строки через responseText?

Цитата trident @
MsgBox b
показывает какой то мусор.

Похоже, что MsgBox b интерпритирует массив байтов (например, текст в кодировке utf-8) как массив двухбайтовых Unicode-символов - в итоге получается мусор

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)