annotate IniFile.cs @ 11:1c36044114a3

* Set default namespace no-open-ticket
author IBBoard <dev@ibboard.co.uk>
date Sat, 21 Aug 2010 10:05:54 +0000
parents 848e7b151d3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 (IniFile.cs) is a part of the IBBoard.Ini library 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 //
6
f6f726c92e56 Re #8 - License code
IBBoard <dev@ibboard.co.uk>
parents: 5
diff changeset
3 // The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license.
0
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;
1
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
6 using System.Collections;
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
7 using System.Collections.Generic;
1
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
8 using System.Text;
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
9
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
10 namespace IBBoard.Ini
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
11 {
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
12 /// <summary>
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
13 /// The <code>IniFile</code> provides access to INI formatted data. INI files are no longer used as much as they were, but many older applications including parts of Windows still use them to store data and configuration values in.
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
14 /// </summary>
1
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
15 public class IniFile : IEnumerable<IniSection>
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
16 {
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
17 private Dictionary<string, IniSection> sections;
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
18
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
19 /// <summary>
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
20 /// Default constructor that provides an empty INI file with no sections
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
21 /// </summary>
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
22 public IniFile()
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
23 {
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
24 sections = new Dictionary<string,IniSection>();
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
25 }
1
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
26
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
27 /// <summary>
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
28 /// Adds an <see cref="IniSection"/> to the IniFile.
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
29 /// <p>
5
7e06c0699257 Re #7 - Add tests to INI parsing
IBBoard <dev@ibboard.co.uk>
parents: 4
diff changeset
30 /// Throws a DuplicateIniSectionException if the section already exists in this file
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
31 /// </summary>
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
32 /// <param name="section">
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
33 /// The <see cref="IniSection"/> to add
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
34 /// </param>
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
35 public void AddSection(IniSection section)
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
36 {
10
848e7b151d3c Re #17 - Make INI section names and keys case insensitive
IBBoard <dev@ibboard.co.uk>
parents: 9
diff changeset
37 string sectionName = section.Name.ToLower();
848e7b151d3c Re #17 - Make INI section names and keys case insensitive
IBBoard <dev@ibboard.co.uk>
parents: 9
diff changeset
38
848e7b151d3c Re #17 - Make INI section names and keys case insensitive
IBBoard <dev@ibboard.co.uk>
parents: 9
diff changeset
39 if (!HasSection(sectionName))
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
40 {
10
848e7b151d3c Re #17 - Make INI section names and keys case insensitive
IBBoard <dev@ibboard.co.uk>
parents: 9
diff changeset
41 sections.Add(sectionName, section);
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
42 }
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
43 else
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
44 {
4
01fc09ab63e2 Re #7 - Add tests for INI parsing
IBBoard <dev@ibboard.co.uk>
parents: 2
diff changeset
45 throw new DuplicateIniSectionException(section.Name);
0
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 }
1
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
48
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
49 public IEnumerator<IniSection> GetEnumerator()
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
50 {
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
51 return sections.Values.GetEnumerator();
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
52 }
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
53
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
54 IEnumerator IEnumerable.GetEnumerator()
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
55 {
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
56 return sections.Values.GetEnumerator();
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
57 }
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
58
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
59 //// <value>
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
60 /// Gets a single section by name. If no section exists with that name then a <see cref=" NonExistantIniSection"/> is returned to remove the need for null checks. To check for the existance of a section use the <code>HasSection</code> method.
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
61 /// </value>
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
62 public IniSection this[string sectionName]
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
63 {
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
64 get
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
65 {
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
66 IniSection section = null;
10
848e7b151d3c Re #17 - Make INI section names and keys case insensitive
IBBoard <dev@ibboard.co.uk>
parents: 9
diff changeset
67 sections.TryGetValue(sectionName.Trim().ToLower(), out section);
1
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
68
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
69 if (section == null)
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
70 {
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
71 section = new NonExistantIniSection();
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
72 }
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
73
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
74 return section;
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
75 }
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
76 }
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
77
2
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
78 /// <summary>
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
79 /// Checks whether the IniFile contains an <see cref=" IniSection"/> with the specified name
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
80 /// </summary>
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
81 /// <param name="sectionName">
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
82 /// The name of the section to look for
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
83 /// </param>
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
84 /// <returns>
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
85 /// <code>true</code> if the section is in the file, else <code>false</code>
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
86 /// </returns>
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
87 public bool HasSection(string sectionName)
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
88 {
10
848e7b151d3c Re #17 - Make INI section names and keys case insensitive
IBBoard <dev@ibboard.co.uk>
parents: 9
diff changeset
89 return sections.ContainsKey(sectionName.Trim().ToLower());
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
90 }
2
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
91
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
92 /// <summary>
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
93 /// Gets an array of the <see cref=" IniSection"/>s in the file
2dde4c1d19d9 Closes #6 - Create INI parser
IBBoard <dev@ibboard.co.uk>
parents: 1
diff changeset
94 /// </summary>
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
95 public IniSection[] Sections
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
96 {
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
97 get
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
98 {
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
99 IniSection[] col = new IniSection[sections.Count];
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
100 sections.Values.CopyTo(col, 0);
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
101 return col;
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
102 }
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
103 }
1
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
104
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
105 public override string ToString()
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
106 {
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
107 StringBuilder stringBuilder = new StringBuilder();
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
108
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
109 foreach (IniSection section in this)
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
110 {
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
111 stringBuilder.Append(section.ToString());
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
112 stringBuilder.Append("\n");
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
113 }
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
114
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
115 return stringBuilder.ToString().Trim();
f9444f1786cd Re #6 - INI parsing library
IBBoard <dev@ibboard.co.uk>
parents: 0
diff changeset
116 }
8
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
117
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
118 /// <summary>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
119 /// Gets the value from a given key-value pair in a given section. If either the section does not exist or the key does not exist
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
120 /// in the section then NULL will be returned. If the key exists in the section then its corresponding value will be returned.
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
121 /// </summary>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
122 /// <param name="sectionName">
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
123 /// The <code>IniSection</code> to look for <code>lineKey</code> in
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
124 /// </param>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
125 /// <param name="lineKey">
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
126 /// The key for the <code>IniKeyValuePairLine</code> within the <code>sectionName</code> <code>IniSection</code> to get the value for
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
127 /// </param>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
128 /// <returns>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
129 /// The value for the key in the section, or NULL if the section or the key do not exist
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
130 /// </returns>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
131 public string GetSectionLineValue(string sectionName, string lineKey)
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
132 {
9
5b0052b5585f Closes #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 8
diff changeset
133 IniSection section = this[sectionName];
5b0052b5585f Closes #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 8
diff changeset
134 return section.GetLineValue(lineKey);
8
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
135 }
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
136
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
137 /// <summary>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
138 /// Gets the value from a given key-value pair in a given section. If either the section does not exist or the key does not exist
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
139 /// in the section then <code>defaultValue</code> will be returned. If the key exists in the section then its corresponding value will be returned.
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
140 /// </summary>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
141 /// <param name="sectionName">
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
142 /// The <code>IniSection</code> to look for <code>lineKey</code> in
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
143 /// </param>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
144 /// <param name="lineKey">
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
145 /// The key for the <code>IniKeyValuePairLine</code> within the <code>sectionName</code> <code>IniSection</code> to get the value for
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
146 /// </param>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
147 /// <param name="defaultValue">
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
148 /// The default value to return if the section or the key do not exist
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
149 /// </param>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
150 /// <returns>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
151 /// The value for the key in the section, or NULL if the section or the key do not exist
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
152 /// </returns>
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
153 public string GetSectionLineValue(string sectionName, string lineKey, string defaultValue)
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
154 {
9
5b0052b5585f Closes #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 8
diff changeset
155 IniSection section = this[sectionName];
5b0052b5585f Closes #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 8
diff changeset
156 return section.GetLineValue(lineKey, defaultValue);
8
2bba3fb360ed Re #11 - Add getter methods to IniFile and IniSection
IBBoard <dev@ibboard.co.uk>
parents: 6
diff changeset
157 }
0
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
158 }
fbde5e1920ba Re #6 (Ini parsing library) - Initial commit of IBBoard Ini parsing
IBBoard <dev@ibboard.co.uk>
parents:
diff changeset
159 }