Ejemplo n.º 1
0
        private void ProcessPropertyValue(SGF_Property property)
        {
            if (PeekChar() != '[')
            {
                return;
            }
            bool isContinue = true;

            do
            {
                int    indexPropertyValueEnd = FindNextPropertyValueEnd();
                byte[] value = ReadBytes(indexPropertyValueEnd - index_ + 1);
                if (value.Length > 2 && value[0] == (byte)'[' && value[value.Length - 1] == (byte)']')
                {
                    byte[] realValue = new byte[value.Length - 2];
                    Buffer.BlockCopy(value, 1, realValue, 0, realValue.Length);
                    property.AddValue(realValue);
                }
                while (!EOF)
                {
                    char ch = PeekChar();
                    if (IsUnusedChar(ch))
                    {
                        ReadChar();
                        continue;
                    }
                    else if (ch != '[' || IsControlChar(ch))
                    {
                        isContinue = false;
                    }
                    break;
                }
            } while (!EOF && isContinue);
            return;
        }