반응형
ini파일의 경우 설정파일을 저장할때 많이사용하며 C,C++등에서 많이 사용된 파일입니다. 먼저 INI파일 구조에 대하여 알아보겠습니다. Section, Key, Value로 이루어져있습니다. Section단위로 구분을 할수 있으며 해당 Section내에 Key값과 Value값으로 설정파일을 저장합니다.
항목 | 값 |
Section | [DB] |
Key | sa |
Value | 1234 |
C#에서 INI파일을 사용하여 파일을 읽고/쓰기를 할때는 GetPrivateProfileString/WritePrivateProfileString WinAPI함수를 사용합니다.
[전체소스코드]
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
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
// 출처
// https://www.codeproject.com/Articles/1966/An-INI-file-handling-class-using-C
namespace IniFileTest
{
class Program
{
static void Main(string[] args)
{
IniFile iniFile = new IniFile(@"c:\setting.ini");
iniFile.IniWriteValue("DB", "ID", "sa");
iniFile.IniWriteValue("DB", "PWD", "1234");
Console.WriteLine("IniFile Write....");
string id = iniFile.IniReadValue("DB", "ID");
string pwd = iniFile.IniReadValue("DB", "PWD");
Console.WriteLine("IniFile Read....");
Console.WriteLine("DB ID:{0} ,PWD:{1}");
}
}
/// <summary>
/// Create a New INI file to store or load data
/// </summary>
public class IniFile
{
public string path;
//Ini 쓰기 WinApi선언
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,string key,
string val, string filePath); //Ini 읽기 WinApi선언
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,string key,
string def, StringBuilder retVal,int size, string filePath); /// <summary>
/// INIFile Constructor.
/// </summary>
/// <PARAM name="INIPath"></PARAM>
public IniFile(string INIPath)
{
path = INIPath;
}
/// <summary>
/// Write Data to the INI File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// Section name
/// <PARAM name="Key"></PARAM>
/// Key Name
/// <PARAM name="Value"></PARAM>
/// Value Name
public void IniWriteValue(string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, this.path);
}
/// <summary>
/// Read Data Value From the Ini File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// <PARAM name="Key"></PARAM>
/// <PARAM name="Path"></PARAM>
/// <returns></returns>
public string IniReadValue(string Section, string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, "", temp,
255, this.path);
return temp.ToString();
}
}
}
|
'프로그래밍 > C#' 카테고리의 다른 글
[C#] MariaDB 연동방법 (3) | 2021.05.23 |
---|---|
[C#] 프로그램상에서 크롬브라우저 실행방법 (0) | 2021.01.26 |
[C#] 웹 URL 이미지 불러오기 (WebClient) (0) | 2020.11.13 |
[C#] FileSystemWatcher 폴더/파일변경관련 감시 (0) | 2020.10.24 |
[C#] 비밀번호(패스워드) 암호화 SHA256알고리즘 (0) | 2020.10.03 |