본문 바로가기
GameMaker강좌[GM8]/기초강좌

[게임메이커강좌-기초] ini 파일 작성

by 타락카얀 2017. 3. 26.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN

 

 

 

 

 

 

◈ ini 파일 작성

 

 

이번 강좌에서는 ini 파일을 작성하는 방법에 대해 알아보도록 합시다.
ini 파일은 아래와 같은 구조로 되어 있습니다.

 



[section]
key=value



섹션(section) 아래에, (key)와 그에 대응하는 (value)으로 구성됩니다.

예를 들어 아래와 같은 ini 파일이 있다면,

 



[option]
data_01="1"
data_02="hello, world!"


 

option 이라는 섹션 아래에, data_01, data_02 키가 있고, 키에 대한 값들이 할당되어 있습니다.

ini 파일을 작성하기 위해서는 먼저 파일을 호출한 후, 데이터를 기록하거나, 데이터를 읽으면 됩니다.

그리고, 파일을 호출했다면 반드시 파일을 닫아야 합니다.
파일 호출과 닫을 때는 아래와 같은 함수를 사용합니다.

 



ini_open(name) : 해당 ini 파일을 엽니다.
ini_close( ) : ini 파일을 닫습니다.


 

ini 파일은 보통 아래와 같은 형식으로 작성해요.

 



ini_open("example.ini"); ◀  ※ 중요 : ini 파일을 연다

     ...

< 데이터를 기록하거나, 읽음 >

     ...

ini_close( ); ◀  ※ 중요 : ini 파일을 닫는다


 

먼저 ini 파일을 열고, 그 다음 데이터를 기록하거나, 읽는 이벤트를 작성하고, 마지막으로 ini 파일을

닫으면 됩니다.

데이터를 ini 파일에 기록할 때는 아래와 같은 함수를 사용할 수 있습니다.

 



ini_write_string(section,key,value) : 문자열을 ini 파일에 기록합니다.
ini_write_real(section,key,value) : 숫자를 ini 파일에 기록합니다.


 

ini 파일에 데이터를 작성할 때, 문자열과 숫자 2가지를 구분하여 기록할 수 있어요.
지정한 sectionkeyvalue 값을 작성하면 되는데, sectionkey 는 문자열로 작성해야 합니다.

 



예)


ini_write_real("option","data_01",5)
ini_write_string("option","data_02","Hello, world!")


 

그리고 ini 파일에 기록한 값을 읽을 때는 아래와 같은 함수를 사용합니다.

 



ini_read_string(section,key,default) : ini 에 기록한 key 값을 문자열 값으로 읽습니다.
ini_read_real(section,key,default)  : ini 에 기록한 key 값을 실수 값으로 읽습니다.


 

ini 파일에 기록할 때와 마찬가지로 값을 읽을 때는 숫자와 문자열을 구분해야 합니다.
default 값은 지정한 key 값이 없거나, 값을 읽는데 실패했을 때 반환하는 값을 지정하면 됩니다.

 



예)


global.data_01=ini_read_real("option","data_01",0); // 값을 읽는데 실패하면 숫자 0을 반환함.
global.data_02=ini_read_string("option","data_01","none"); // 값을 읽는데 실패하면 문자열

"none"을 반환함.


ini 파일의 섹션 또는, 키 값이 있는지 체크할 수도 있습니다.

 



ini_section_exists(section) : 지정한 section이 있는지 체크합니다.
ini_key_exists(section,key) : 지정한 section에 해당 key 가 있는지 체크합니다.


 

함수를 사용하여 ini 파일에 섹션이나, 키가 없다면 false(0)을 반환하고, 있을 경우 true(1)을 반환힙니다.

ini 파일의 섹션이나, 키 값을 삭제할 수 있는데, 그러고자 할 때는 아래와 같은 함수를 사용합니다.

 



ini_section_delete(section) : 지정한 section 을 삭제합니다(※주의: 하위 키들도 삭제가 됨).
ini_key_delete(section,key) : 지정한 section의 key 값을 삭제합니다.


 

참고로 섹션을 삭제할 경우, 그 하위에 속한 모든 키들도 삭제 됩니다.

300x250

댓글