Mercurial > repos > IBBoard.Ini
diff IniLineParser.cs @ 0:fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Thu, 08 Jan 2009 20:33:56 +0000 |
parents | |
children | f9444f1786cd |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/IniLineParser.cs Thu Jan 08 20:33:56 2009 +0000 @@ -0,0 +1,47 @@ +// This file (IniLineParser.cs) is a part of [SOME APPLICATION] and is copyright 2009 IBBoard. +// +// The file and the library/program it is in are licensed under the GNU LGPL license. Please see COPYING.LGPL for more information and the full license. + +using System; + +namespace IBBoard.Ini +{ + public class IniLineParser + { + /// <summary> + /// Gets a key-value pair of strings from a string in the INI settings format. If the line does not contain an equals then a zero-length array is returned. + /// If there are multiple equals signs the the key is split from the value on the first one + /// </summary> + /// <param name="line"> + /// A <see cref="System.String"/> + /// </param> + /// <returns> + /// A <see cref="System.String"/> + /// </returns> + public static string[] GetKeyValuePair(string line) + { + line = line.Trim(); + int idx = line.IndexOf('='); + string[] keyValuePair; + + if (idx > 0) + { + keyValuePair = SplitAtIndex(line, idx); + } + else + { + keyValuePair = new string[0]; + } + + return keyValuePair; + } + + private static string[] SplitAtIndex(string line, int idx) + { + string[] keyValuePair = new string[2]; + keyValuePair[0] = line.Substring(0, idx).Trim(); + keyValuePair[1] = line.Substring(idx+1).Trim(); + return keyValuePair; + } + } +}