Exemplo n.º 1
0
        public static StringTable ReadStringTable(this BinaryStream stream, StringCodec codec)
        {
            ushort maxLength = stream.ReadUShort();
            int    count     = stream.ReadUShort();

            var table = new StringTable {
                MaxLength = maxLength
            };

            for (int i = 0; i < count; i++)
            {
                table.Add(codec.ReadCodedString(stream, maxLength));
            }

            return(table);
        }
Exemplo n.º 2
0
        public static List <string> ReadStringOffsetTable(this BinaryStream stream, StringCodec codec,
                                                          bool isScript, bool multiplyByTwo, int dataPointer)
        {
            var strings = new List <string>();

            var offsetReader = new ShortOffsetTableReader(stream, dataPointer, multiplyByTwo);

            while (!offsetReader.EndOfTable)
            {
                if (offsetReader.Next())
                {
                    strings.Add(isScript ? codec.ReadScriptString(stream) : codec.ReadCodedString(stream));
                }
                else
                {
                    strings.Add(null);
                }
            }

            return(strings);
        }