MemoryStream и построение массива байтов

Я использую MemoryStream для создания массива байтов, которые мне нужно отправить на сервер. У меня есть три вопроса:

1) Есть ли лучший способ построить массив байтов, чем это?

2) Почему этот фрагмент кода записывает ложные данные в мой поток памяти?

var
  serial : word;
  MS : TMemoryStream;
const
  somebytes : array [0..1] of byte = ($72,$72);
...
begin
      MS := TMemoryStream.Create();
      try
      MS.Write(somebytes[0],2);
      serial := $3E6C;
      MS.Write(serial,2);
      finally
      MS.Free;
end;

С помощью отладчика вижу, что в поток добавляется значение $6F32 вместо $3E6C.

3) Если я вызываю

MS.Position := 2;

, а затем обращаюсь к PByte(MS.Memory)^, почему я получаю первый байт в потоке вместо третьего?

6
задан opc0de 9 May 2012 в 11:09
поделиться