Объединить два байта в WideChar

Можно ли совместить два Bytes в WideChar и если да, то как?
Например, буква "ē" в двоичном виде 00010011 знак равно 19 а также 00000001 знак равно 1, или же 275 все вместе.

var
  WChar: WideChar;
begin
  WChar := WideChar(275); // Result is "ē"


var
  B1, B2: Byte;
  WChar: WideChar;
begin
  B1 := 19;
  B2 := 1;
  WChar := CombineBytesToWideChar(B1, B2); // ???

Как я могу получить WideChar из двух байтов в Delphi?

2 ответа

Решение
WChar := WideChar(MakeWord(B1, B2));

Вы должны просто иметь возможность создать тип и привести:

type
  DoubleByte = packed record
    B1: Byte;
    B2: Byte;
  end;

var
  DB: DoubleByte;
  WC: WideChar;
begin
  DB.B1 := 19;
  DB.B2 := 1;

  WC = WideChar(DB);
end;

В противном случае вы можете использовать Move() вместо этого и просто скопируйте память.

Другие вопросы по тегам