h-you / branches / src / UpDateCopy / IniFile.cs @ 71
履歴 | 表示 | アノテート | ダウンロード (2.18 KB)
1 | 70 | bit | 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 | } |