Exemple #1
0
            public StringList(EndianBinaryReader reader)
            {
                Address = reader.BaseStream.Position;

                Strings = new Collection<string>();

                int count = reader.ReadInt32() & 0xffffff;
                int[] offsets = reader.ReadInt32s(count);

                foreach (var item in offsets)
                {
                    reader.BaseStream.Seek(Address + item, SeekOrigin.Begin);
                    Strings.Add(reader.ReadStringNT(Encoding.ASCII));
                }

                Length = reader.BaseStream.Position - Length;
            }
Exemple #2
0
            public BinaryDataList(EndianBinaryReader reader)
            {
                Address = reader.BaseStream.Position;

                DataList = new Collection<byte[]>();

                int count = reader.ReadInt32() & 0xffffff;
                int[] offsets = reader.ReadInt32s(count + 1);

                for (int i = 0; i < count; i++)
                {
                    reader.BaseStream.Seek(Address + offsets[i], SeekOrigin.Begin);
                    DataList.Add(reader.ReadBytes(offsets[i + 1] - offsets[i]));
                }

                Length = reader.BaseStream.Position - Length;
            }