h-you / branches / src / UpDateCopy / IniFile.cs @ 71
履歴 | 表示 | アノテート | ダウンロード (2.18 KB)
1 |
using System.Runtime.InteropServices; |
---|---|
2 |
using System.Text; |
3 |
|
4 |
/// <summary> |
5 |
/// INIファイルを読み書きするクラス |
6 |
/// </summary> |
7 |
public class IniFile |
8 |
{ |
9 |
[DllImport("kernel32.dll")] |
10 |
private static extern int GetPrivateProfileString( |
11 |
string lpApplicationName, |
12 |
string lpKeyName, |
13 |
string lpDefault, |
14 |
StringBuilder lpReturnedstring, |
15 |
int nSize, |
16 |
string lpFileName); |
17 |
|
18 |
[DllImport("kernel32.dll")] |
19 |
private static extern int WritePrivateProfileString( |
20 |
string lpApplicationName, |
21 |
string lpKeyName, |
22 |
string lpstring, |
23 |
string lpFileName); |
24 |
|
25 |
string filePath; |
26 |
|
27 |
/// <summary> |
28 |
/// ファイル名を指定して初期化します。 |
29 |
/// ファイルが存在しない場合は初回書き込み時に作成されます。 |
30 |
/// </summary> |
31 |
public IniFile(string filePath) |
32 |
{ |
33 |
this.filePath = filePath; |
34 |
} |
35 |
|
36 |
/// <summary> |
37 |
/// sectionとkeyからiniファイルの設定値を取得、設定します。 |
38 |
/// </summary> |
39 |
/// <returns>指定したsectionとkeyの組合せが無い場合は""が返ります。</returns> |
40 |
public string this[string section, string key] |
41 |
{ |
42 |
set |
43 |
{ |
44 |
WritePrivateProfileString(section, key, value, filePath); |
45 |
} |
46 |
get |
47 |
{ |
48 |
StringBuilder sb = new StringBuilder(256); |
49 |
GetPrivateProfileString(section, key, string.Empty, sb, sb.Capacity, filePath); |
50 |
return sb.ToString(); |
51 |
} |
52 |
} |
53 |
|
54 |
/// <summary> |
55 |
/// sectionとkeyからiniファイルの設定値を取得します。 |
56 |
/// 指定したsectionとkeyの組合せが無い場合はdefaultvalueで指定した値が返ります。 |
57 |
/// </summary> |
58 |
/// <returns> |
59 |
/// 指定したsectionとkeyの組合せが無い場合はdefaultvalueで指定した値が返ります。 |
60 |
/// </returns> |
61 |
public string GetValue(string section, string key, string defaultvalue) |
62 |
{ |
63 |
StringBuilder sb = new StringBuilder(256); |
64 |
GetPrivateProfileString(section, key, defaultvalue, sb, sb.Capacity, filePath); |
65 |
return sb.ToString(); |
66 |
} |
67 |
} |
68 |
|