プロジェクト

全般

プロフィール

統計
| リビジョン:

h-you / branches / src / UpDateCopy / IniFile.cs @ 70

履歴 | 表示 | アノテート | ダウンロード (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