public void NewRead(BinaryReader br)
    {
      contentType = (EContentType)br.ReadByte();
      const01 = br.ReadByte();
      if (const01 != 1)
      {
        throw new Exception("Hibás konstans érték!");
      }
      blockType = (EBlockType)br.ReadByte();
      blockHeaderSize = br.ReadByte();
      byte[] buffer = br.ReadBytes(blockHeaderSize);
      br.BaseStream.Seek((long)-blockHeaderSize, SeekOrigin.Current);
      blockChecksum8 = Utils.ComputeBlockChecksum(const01, blockType, blockHeaderSize, buffer);
      long num = br.ReadInt64();

      blockHeader = TBlockHeader.GenBlkHeader(br,contentType,blockType);
      blockHeader.Read(br);
      blockChecksum8 = br.ReadByte();
      content = br.ReadBytes((int)blockHeader.contentSize);
      //blockHeader.contentLength 
    }
    public override void Read(BinaryReader br)
    {
      blockType = (EBlockType)br.ReadByte();
      const01 = br.ReadByte();
      Debug.Assert(const01 == 01, "Const != 01");

      contentType = (EContentType)br.ReadByte();
      blockSize = br.ReadByte();

      // Useful to check for errors
      long currPos = br.BaseStream.Position;
      blockHeader = TBlockHeader.GenBlkHeader(br,contentType,blockType);
      blockHeader.Read(br);
      if (br.BaseStream.Position != currPos + blockSize)
      {
        long missing = (currPos + blockSize - br.BaseStream.Position);
        Debug.Assert(false, "Error Reading Header! ", missing + " bytes left.");
        // Fixes the offset and continue...
        br.BaseStream.Seek(missing, SeekOrigin.Current);
      }

      blockChecksum8 = br.ReadByte();
      content = br.ReadBytes((int)blockHeader.contentSize);
      ROFSTracer.WriteTextBlock( this );
    }