-
Notifications
You must be signed in to change notification settings - Fork 3
/
iniFiles.cs
61 lines (49 loc) · 2.82 KB
/
iniFiles.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace VeNote
{
public class INIManager
{
//Конструктор, принимающий путь к INI-файлу
public INIManager(string aPath)
{
path = aPath;
}
//Конструктор без аргументов (путь к INI-файлу нужно будет задать отдельно)
public INIManager() : this("") { }
//Возвращает значение из INI-файла (по указанным секции и ключу)
public string GetPrivateString(string aSection, string aKey)
{
//Для получения значения
StringBuilder buffer = new StringBuilder(SIZE);
//Получить значение в buffer
GetPrivateString(aSection, aKey, null, buffer, SIZE, path);
//Вернуть полученное значение
return buffer.ToString();
}
//Пишет значение в INI-файл (по указанным секции и ключу)
public void WritePrivateString(string aSection, string aKey, string aValue)
{
//Записать значение в INI-файл
WritePrivateString(aSection, aKey, aValue, path);
}
//Возвращает или устанавливает путь к INI файлу
public string Path { get { return path; } set { path = value; } }
//Поля класса
private const int SIZE = 1024; //Максимальный размер (для чтения значения из файла)
private string path = null; //Для хранения пути к INI-файлу
//Импорт функции GetPrivateProfileString (для чтения значений) из библиотеки kernel32.dll
[DllImport("kernel32.dll", EntryPoint = "GetPrivateProfileString")]
private static extern int GetPrivateString(string section, string key, string def, StringBuilder buffer, int size, string path);
//Импорт функции WritePrivateProfileString (для записи значений) из библиотеки kernel32.dll
[DllImport("kernel32.dll", EntryPoint = "WritePrivateProfileString")]
private static extern int WritePrivateString(string section, string key, string str, string path);
internal void WritePrivateString(string p, string p_2, System.Drawing.Font font)
{
throw new NotImplementedException();
}
}
}