요긴하게 많이 쓰일 것 같은, ini 함수 기능
====== 특징 ======
* 외부 편집기에서 유니코드로 저장해도 파일 내용이 그대로 저장된다.
* 확인필요 : 값을 변경 해도 그대로 저장되는가????
====== ini 파일을 프로젝트에 포함하기 ======
* **Included Files**에 파일을 포함할 수 있다.
* 왼쪽 프로젝트 폴더에서 **Included Files** 선택 \\ {{:language:gamemaker:gm-incfile-3.png?200|}}
* **Create Included File** 메뉴 선택해서 새로운 항목 추가 시작 \\ {{:language:gamemaker:gm-incfile-1.png?200|}}
* **Load** 버튼을 눌러서 ini 파일을 선택한다. \\ {{:language:gamemaker:gm-incfile-2.png?200|}}
====== 포함한 ini 파일을 사용 ======
* 코드상에서 바로 사용하면 된다.
// string.ini 는 포함파일(Included File)로 프로젝트에 포함했다.
ini_open( 'string.ini' );
// 해당 파일에서 [msg] 섹션의 '1','2' 항목을 읽어둔다.
global.string1 = ini_read_string( "msg", "1", "error" );
global.string2 = ini_read_string( "msg", "2", "error" );
// 사용이 끝나면 닫는다.
ini_close();
배열을 사용해서 읽는 것도 괜찮을 듯.
// 리소스 트리에 포함할 ini 파일 : 파일 이름 = string.ini
[msg]
0=한글메시지
1=플레이
2=랭킹
3=나가기
프로그램 시작될때 읽어들이기
//----- read string -----
ini_open( 'string.ini' );
var tmstr, i;
for( i = 0; i <= 4; i += 1 )
{
var keyname;
keyname = string(i);
tmstr = ini_read_string( "msg", keyname, '[read string err:'+keyname+']' );
global.stringList[i] = tmstr;
}
ini_close();
====== 개발 중에 ini 파일 내용 변경이 안될 때 ======
===== 최근버전(1.1.676)에서 확인 =====
* ini 파일 변경을 위해서는 프로젝트 폴더의 **datafiles** 폴더에서 ini 파일을 수정한다.
* 한번 읽어들인 ini 파일은 (=Included Files)는 여기에 저장되며, 실행할때마다 복사해서 쓰는 것 같다. \\ AppData를 폴더를 사용하지 않는다.
* 점수(**score**, **highscore**)와 같이 계속 남아 있어서 확인할 데이터는 기존 방식대로 저장된다.
===== 1.1.622 버젼에서 =====
윈도우즈에서,
ini 파일을 리소스에 포함한 뒤, 변경된 ini 파일이 적용되지 않을 때는
- c:\Users\<윈도우 아이디>\AppData\Local\<프로젝트이름>\
2번 폴더에서 ini 파일을 찾아서 최근 것으로 변경해야 한다.