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