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; }
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; }