본문 바로가기

Language/C#

ini파일 읽고 쓰기

출처 시작이다. | 꼼돌이짱
원문 http://blog.naver.com/tija98/120036897826

1.ini 파일이란
ini파일은 보통 프로그램의 정보를 저장하는 텍스트 문서를 말한다.
다음 함수 들은 이를 수행할 수 있게 도와 주는 함수 들이다.


   GetPrivateProfileInt
   GetPrivateProfileString
   WritePrivateProfileString


꼭 ini파일만을 위한 것은 아니다. 확장자는 자신이 원하는 대로 하면 된다.

ini파일의 구성은 다음과 같다.


  [section1]
  key1=value1
  key2=value2

 

  [section2]
  key1=value1
  key2=value2

 

section과 key로 각 설정값을 구별한다.
간단한 예로 Host의 ip값을 "127.0.0.1"이라 하고 port 값을 30이라 한다면

 

  [HOST]
  ip = 127.0.0.1
  port = 30

 

이런 씩으로 적어 두면 된다.

 

2. ini파일 읽기

c:\test.ini파일에 다음과 같은 내용을 입력하자.


  [HOST]
  ip = 127.0.0.1
  port = 30

 

이를 읽는 방법은 아주 간단하다.

----------------------------------------------------------------------------

#include <windows.h>
#include <stdio.h>
void main()
{
   int nport = 0;
   char sIp[100];
   
   memset(sIp,0,100);
   nport = GetPrivateProfileInt("HOST","port",9999,"c:\\test.ini");
   GetPrivateProfileString("HOST","ip","MSG_ERROR",sIp,100,"c:\\test.ini");
   printf("%s:%d\n",sIp,nport);
}

----------------------------------------------------------------------------

앞의 예제의 결과는 화면에 127.0.0.1:30이 출력된다.

 

3.ini 파일 쓰기
쓰기 함수는 String만 존재한다. 결국 파일에 들어가면 다 String이니 하나만
만든거 같다. 다음은 간단한 함수 사용 법이다.

 

WritePrivateProfileString("HOST2","ip2","192.168.10.1","c:\\test.ini")

 

test.ini파일에 "HOST2" 라는 Section이 하나 더 생기기고 
"ip2"의 값에 "192.168.10.1" 들어가 있는 것을 볼 수 있다.

 

4. ini파일 삭제
삭제 함수는 따로 존재 하지 않고 WritePrivateProfileString함수의 value값을 
NULL로 하면 그 Key는 사라 진다.


WritePrivateProfileString("HOST2","ip2",NULL,"c:\\test.ini")

 

Section을 삭제 할려면 어떻게 해야 할까? 눈치가 빠른 사람이라면 알것이다.
key값에 NULL을 넣어 주면 Section자체가 삭제 된다.

 

WritePrivateProfileString("HOST2",NULL,NULL,"c:\\test.ini")


'Language > C#' 카테고리의 다른 글

Microsoft Public License (MS-PL)  (0) 2016.02.04
Winform에서 키 이벤트 안먹음  (0) 2016.02.04
ToString(IFormatProvider provider) 형식  (0) 2016.02.04
WPF 예제 샘플  (0) 2016.02.04
[C#] PrintDocument 이용한 다중 페이지 출력  (0) 2016.02.04