Mercurial > repos > IBBoard.Ini
annotate 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 |
rev | line source |
---|---|
0
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 // This file (IniLineParser.cs) is a part of [SOME APPLICATION] and is copyright 2009 IBBoard. |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 // |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
3 // 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. |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
5 using System; |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
7 namespace IBBoard.Ini |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
8 { |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 public class IniLineParser |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 { |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
11 /// <summary> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
12 /// 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. |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
13 /// If there are multiple equals signs the the key is split from the value on the first one |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
14 /// </summary> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
15 /// <param name="line"> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
16 /// A <see cref="System.String"/> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
17 /// </param> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
18 /// <returns> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 /// A <see cref="System.String"/> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 /// </returns> |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
21 public static string[] GetKeyValuePair(string line) |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
22 { |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
23 line = line.Trim(); |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
24 int idx = line.IndexOf('='); |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
25 string[] keyValuePair; |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
26 |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
27 if (idx > 0) |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
28 { |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
29 keyValuePair = SplitAtIndex(line, idx); |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
30 } |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
31 else |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
32 { |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
33 keyValuePair = new string[0]; |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
34 } |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
35 |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
36 return keyValuePair; |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
37 } |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
38 |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
39 private static string[] SplitAtIndex(string line, int idx) |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
40 { |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
41 string[] keyValuePair = new string[2]; |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
42 keyValuePair[0] = line.Substring(0, idx).Trim(); |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
43 keyValuePair[1] = line.Substring(idx+1).Trim(); |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
44 return keyValuePair; |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
45 } |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
46 } |
fbde5e1920ba
Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
47 } |