Ejemplo n.º 1
0
        public static unsafe string LoadStringMaybe(DataStreamPtr reader, string ifnot)
        {
            byte[] bytes = new byte[1];
            fixed(byte *buff = bytes)
            {
                reader.Read(buff, 1);
            }

            byte b = bytes[0];

            bytes = new byte[3];
            fixed(byte *buff = bytes)
            {
                reader.Read(buff, 3);
            }

            if (b < 99 && b > 0)
            {
                bytes = new byte[b];
                fixed(byte *buff = bytes)
                {
                    reader.Read(buff, b);
                }

                string str = Encoding.UTF8.GetString(bytes);
                return(str);
            }
            else
            {
                uint pos = reader.Tell();
                pos = pos - 4;
                reader.Seek(pos);
                return(ifnot);
            }
        }