-
Notifications
You must be signed in to change notification settings - Fork 4
/
clsINI.cs
114 lines (83 loc) · 3 KB
/
clsINI.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace INI
{
/// <summary>
/// Create a New INI file to store or load data
/// </summary>
public class IniFile
{
public string path;
[DllImport("kernel32", CharSet = CharSet.Auto)]
private static extern long WritePrivateProfileString(string section,
string key, string val, string filePath);
[DllImport("kernel32", CharSet = CharSet.Auto)]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retVal,
int size, string filePath);
[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileSectionNamesA")]
static extern int GetSectionNamesListA(byte[] lpszReturnBuffer, int nSize, string lpFileName);
/// <summary>
/// INIFile Constructor.
/// </summary>
/// <PARAM name="INIPath"></PARAM>
public IniFile(string INIPath)
{
path = INIPath;
}
/// <summary>
/// Write Data to the INI File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// Section name
/// <PARAM name="Key"></PARAM>
/// Key Name
/// <PARAM name="Value"></PARAM>
/// Value Name
public void IniWriteValue(string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, this.path);
}
/// <summary>
/// Read Data Value From the Ini File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// <PARAM name="Key"></PARAM>
/// <PARAM name="Path"></PARAM>
/// <returns></returns>
public string IniReadValue(string Section, string Key, string Default)
{
StringBuilder temp = new StringBuilder(1023);
int i = GetPrivateProfileString(Section, Key, Default, temp,
1023, this.path);
return temp.ToString();
}
public ArrayList IniGetSections()
{
//Get The Sections List Method
ArrayList arrSec = new ArrayList();
byte[] buff = new byte[1048576];
GetSectionNamesListA(buff, buff.Length, this.path);
String s = Encoding.Default.GetString(buff);
String[] names = s.Split('\0');
foreach (String name in names)
{
if (name != String.Empty)
{
arrSec.Add(name);
}
}
return arrSec;
}
public string IniReadBaseData(string Section, string Key, string Default)
{
StringBuilder temp = new StringBuilder(65536);
int i = GetPrivateProfileString(Section, Key, Default, temp,
65536, this.path);
return temp.ToString();
}
}
}