var
  fs:TMemoryStream; 
  packSum       :Integer;
  c             :byte; 
 procedure WriteByteToStream(B:Byte);
  begin
    fs.Write(B,SizeOf(B));
  end; 
begin
  fs:=TMemoryStream.Create;
  WriteByteToStream(165);  //包头
  WriteByteToStream(03);   //节目流水号  2    FPacketNO
  WriteByteToStream(00);
  WriteByteToStream(47); //包长  2 FPacketLength
  WriteByteToStream(00);  WriteByteToStream(00);    //包流水号   4
  WriteByteToStream(00);
  WriteByteToStream(00);
  fs.Position := 0;
  packSum := 0;
  while fs.Position <= fs.Size do
  begin
    fs.Read(c,1) ;
    //Writeln(c);
    packSum := packSum +byte(c);
  end;  ShowMessage(IntToStr(packSum));end;sizeof内存流 代数和