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;
+		}
+	}
+}