관리 메뉴

안까먹을라고 쓰는 블로그

[C#] INI 읽고/쓰기 본문

Language/C#

[C#] INI 읽고/쓰기

YawnsDuzin 2012. 12. 10. 19:03

 

반응형


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
public class clsINI
{
    public string Path = @"c:\\test.ini";
 
    public clsINI(String sPath)
    {
        Path = sPath;
    }
 
    // INI파일읽기함수(섹션설정)
    public string[] GetIniValue1(string Section)
    {
        byte[] ba = new byte[255];
        uint Flag = GetPrivateProfileSection(Section, ba, 255, Path);
        return Encoding.Default.GetString(ba).Split(new char[1] { '\0' }, StringSplitOptions.RemoveEmptyEntries);
    }
 
    // INI파일읽기함수(섹션,키값설정)
    public string GetIniValue2(string Section, string Key)
    {
        StringBuilder sb = new StringBuilder(500);
        int Flag = GetPrivateProfileString(Section, Key, "", sb, 500, Path);
        return sb.ToString();
    }
 
    // INI파일쓰기함수(섹션,키값설정)
    public bool SetIniValue(string Section, string Key, string Value)
    {
        return (WritePrivateProfileString(Section, Key, Value, Path));
    }
    
    //=====================================================================================
    //=====================================================================================
    /// 
 
    /// INI파일에섹션과키로검색하여값을문자열형으로읽어옵니다.
    /// 
    /// 섹션명
    /// 키값
    /// 기본값
    /// 가져온문자열
    /// 문자열버퍼크기
    /// 파일이름
    /// 가져온문자열의크기
    [DllImport("kernel32")]
    public static extern int GetPrivateProfileString(string lpAppName, string lpKeyName,
    string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
 
    /// INI파일에섹션과키로검색하여값을저장합니다.
    /// 
    /// 섹션명
    /// 키값
    /// 저장할문자열
    /// 파일이름
    /// 저장성공여부
    [DllImport("kernel32")]
    public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
 
 
    /// INI파일에섹션과키로검색하여값을Inteager형으로불러옵니다.
    /// 
    /// 섹션명
    /// 키값
    /// 기본값
    /// 파일이름
    ///  검색된값, 해당키로검색실패시기본값으로대체됨.
    [DllImport("kernel32")]
    public static extern uint GetPrivateProfileInt(string lpAppName, string lpKeyName, int nDefault, string lpFileName);
 
 
    /// INI파일에섹션으로검색하여키와값을Pair형태로가져옵니다.
    /// 
    /// 섹션명
    /// Pair한키와값을담을배열
    /// 배열의크기
    /// 파일이름
    /// 읽어온바이트수
    [DllImport("kernel32.dll")]
    public static extern uint GetPrivateProfileSection(string IpAppName, byte[] IpPairValues uint nSize, string IpFileName);
 
 
    /// INI파일의섹션을가져옵니다.
    /// 
    /// 섹션의리스트를직렬화하여담을배열
    /// 배열의크기
    /// 파일이름
    /// 읽어온바이트수
    [DllImport("kernel32.dll")]
    public static extern uint GetPrivateProfileSectionNames(byte[] IpSections, uint nSize, string IpFileName);
 
}
cs


반응형
Comments