Пример #1
0
 /// <summary>
 /// 指定した行がエントリーの行かどうか判定します。
 /// </summary>
 /// <param name="line">判定する行</param>
 /// <returns>与えられた行がエントリーの行ならば true</returns>
 /// <remarks>
 /// 指定した行がエントリーの行かどうかを判定します。
 /// 先頭に '=' がある場合はエントリー名が無いエントリーと解釈できますが、
 /// これは不正と判定します。
 /// </remarks>
 static bool IsEntryLine(string line)
 {
     if (Utl.IndexNotOfAny(line, " \t=") < line.IndexOf("="))
     {
         return(true);
     }
     return(false);
 }
Пример #2
0
        /// <summary>
        /// エントリーの行からパラメータを抽出します。
        /// </summary>
        /// <param name="line">解析する行</param>
        /// <param name="entryName">エントリー名</param>
        /// <param name="entryValue">エントリーの値</param>
        static bool ParseLineAsEntry(string line, out string entryName, out string entryValue)
        {
            int nameBegin, nameEnd;
            int valueBegin, valueEnd;

            // find where the entry name begins
            nameBegin = Utl.IndexNotOfAny(line, " \t=", 0);
            if (nameBegin == -1)
            {
                goto error;
            }

            // find where the entry name ends
            nameEnd = Utl.LastIndexNotOfAny(line, " \t=", line.IndexOf("="));
            if (nameEnd == -1)
            {
                goto error;
            }
            nameEnd++;

            // find where the entry value begins
            valueBegin = Utl.IndexNotOfAny(line, " \t=", nameEnd);
            if (valueBegin == -1)
            {
                goto error;
            }

            // find where the entry value ends
            valueEnd = line.Length - 1;
            if (valueEnd == -1)
            {
                Debug.Fail("this case must not be occurred.");
                goto error;
            }
            valueEnd++;

            // extract entry's name and value
            entryName  = line.Substring(nameBegin, nameEnd - nameBegin);
            entryValue = line.Substring(valueBegin, valueEnd - valueBegin);

            return(true);

error:
            // if an error has occured, clear output values and exit
            entryName  = null;
            entryValue = null;

            return(false);
        }