Пример #1
0
        protected void SetIndexList(byte[] indexbuf)
        {
            _listIndex.Clear();

            //unzip
            ICSharpCode.SharpZipLib.Wrapper zipwrapper = new ICSharpCode.SharpZipLib.Wrapper();
            indexbuf = zipwrapper.Decompress(indexbuf);

            //read data to index list
            MemoryStream stream  = new MemoryStream(indexbuf);
            BinaryReader breader = new BinaryReader(stream);

            for (int i = 0; i < indexbuf.Length / Index.StreamSize; i++)
            {
                Index item = new Index(breader);

                _listIndex.Add(item);
            }

            //dataffset ==-1 is the point to same block as previous one
            for (int i = 0; i < _listIndex.Count; i++)
            {
                if (_listIndex[i].DataOffset == -1 && i > 0)
                {
                    _listIndex[i].ChangeDataOffsetLength(_listIndex[i - 1].DataOffset, _listIndex[i - 1].DataLength);
                }
            }

            _listIndex.Sort();
        }
Пример #2
0
        protected void SetIndexList(byte[] indexbuf)
        {
            _listIndex.Clear();

            //unzip
            ICSharpCode.SharpZipLib.Wrapper zipwrapper = new ICSharpCode.SharpZipLib.Wrapper();
            indexbuf = zipwrapper.Decompress(indexbuf);

            //read data to index list
            MemoryStream stream = new MemoryStream(indexbuf);
            BinaryReader breader = new BinaryReader(stream);
            for (int i = 0; i < indexbuf.Length / Index.StreamSize; i++)
            {
                Index item = new Index(breader);

                _listIndex.Add(item);
            }

            //dataffset ==-1 is the point to same block as previous one
            for (int i = 0; i < _listIndex.Count; i++)
            {
                if (_listIndex[i].DataOffset == -1 && i > 0)
                {
                    _listIndex[i].ChangeDataOffsetLength(_listIndex[i - 1].DataOffset, _listIndex[i - 1].DataLength);
                }
            }

            _listIndex.Sort();
        }