Как я могу преобразовать TBytes в RawByteString?

Вставьте строку json в этот веб-сайт и сгенерируйте свое pojo. Используйте Gson для разбора вашей строки и привязки к сгенерированному pojo.

5
задан stukelly 25 April 2009 в 15:40
поделиться

3 ответа

Вы можете использовать move (не проверено)

function Convert(const Bytes: TBytes): RawByteString; 
begin
  SetLength(Result, Length(Bytes));
  Move(Bytes[0], Result[1], Length(Bytes))  
end;

И использовать «const» для параметра, чтобы массив не копировался дважды.

6
ответ дан 18 December 2019 в 05:44
поделиться

И не забудьте проверить:

IF Length (Bytes)> 0 THEN MOVE .....

5
ответ дан 18 December 2019 в 05:44
поделиться

Самый простой способ конвертировать байты в RawByteString должен использовать SetString () .

Кроме того, чтобы избежать потери данных, если RawByteString когда-либо назначен другим типам String, вам следует назначьте кодовую страницу для RawByteString , чтобы его символьные данные правильно преобразовывались в кодировку принимающей строки:

function Convert(const Bytes: TBytes): RawByteString; 
begin
  SetString(Result, PAnsiChar(PByte(Bytes))^, Length(Bytes));
  SetCodePage(Result, ..., False);
end;
6
ответ дан 18 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: