Exemplo n.º 1
0
            public Entry(Header h, IndexEntry e, Stream stream)
            {
                this.h = h;
                this.e = e;
                data = new byte[h.DataBlockLength * e.BlocksCount];
                for (int i = 0; i < e.BlocksCount; i++)
                {
                    stream.Position = e.GetBlockOffset(i) * h.DataBlockLength;
                    stream.Read(data, h.DataBlockLength * i, h.DataBlockLength);
                }
                BinaryReader reader = new BinaryReader(new MemoryStream(data));
                _00 = reader.ReadUInt16();
                _02 = reader.ReadUInt16();
                offset = reader.ReadUInt16();
                _06 = reader.ReadUInt16();
                _08 = reader.ReadUInt16();
                _0a = reader.ReadUInt16();
                count = reader.ReadUInt16();

                reader.BaseStream.Position = offset;
                value = new Value[activeEntries = e.activeEntries];
                for (int i = 0; i < value.Length; i++)
                    value[i] = new Value(reader, this, i);
            }