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

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

by 타락카얀 2017. 4. 1.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN

 

 

 

 

 

 

◈ 텍스트 파일 작성

 


이번 강좌에서는 텍스트 파일을 작성하는 방법에 대해 알아보도록 합시다.

텍스트 파일의 쓰기와 읽기는 ini 파일 쓰기/읽기와 비슷하지만, 파일을 열 때부터 쓰기와 읽기를 구별하여

이벤트를 구성해야 합니다. 텍스트 파일의 쓰기는 먼저 기록할 텍스트 파일을 열고, 그 다음 데이터를

기록한 다음, 마지막으로 파일을 닫으면 됩니다.
읽기도 마찬가지입니다. 먼저 읽기를 시도할 텍스트 파일을 열고, 그 다음 데이터를 읽은 다음, 마지막으로

파일을 닫으면 됩니다.

 

다만, 텍스트 기록 기능은 ini 기록 방식과는 달리 특정 값을 찾거나 또는, 수정 및 추가하기가 힘든

구조입니다. 모든 데이터를 한번에 기록해야 하고, 값을 찾으려면 모든 데이터를 확인해야 하지요.

이 부분을 고려해 ini 방식이나 텍스트 방식을 나누어 사용하시는 것이 좋습니다.

 

파일 열 때는 아래의 함수를 사용합니다.

 



file_text_open_write(fname) : 텍스트 파일을 기록
file_text_open_append(fname) : 지정 텍스트의 맨 끝부터 추가 기록

file_text_open_read(fname) : 텍스트 파일을 읽음


 

기록할 때는 텍스트를 처음부터 기록하는 방식(file_text_open_write)과, 기존에 있는 텍스트 데이터에

이어서 기록하는 방식(file_text_open_append) 2가지로 나뉩니다.

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

 



file_text_close(fileid) : 텍스트 파일을 닫음

 

텍스트 파일은 보통 아래와 같은 형식으로 기록합니다.

 



fn=file_text_open_write("example.txt"); ◀  ※ 중요 : 기록할 텍스트 파일을 열고, 호출한 파일 id를 변수에 할당

     ...

< 호출한 파일 id에 데이터를 기록 >

     ...

file_text_close(fn); ◀  ※ 중요 : 호출한 파일을 닫는다


 

먼저 록할 텍스트 파일을 열고, 호출한 파일 id를 변수에 할당한 후, 그 변수를 사용해 데이터를

기록하지요.

파일을 기록할 때는 아래의 함수를 사용합니다.

 



file_text_write_real(fileid,x) : 숫자를 기록
file_text_write_string(fileid,str) : 문자열을 기록

file_text_writeln(fileid) : 기록할 다음 줄로 이동(개행)


 

기록할 때는 문자열과 숫자를 구분하여 기록해야 합니다.
그리고 데이터를 작성할 때, 다음 줄로 이동하여 기록 하고 싶다면 file_text_writeln를 사용하고 데이터를

기록하면 됩니다.

 



예) fileid 는 파일을 열었을 때, 호출한 파일 id 를 말함. 보통 변수에 저장 후 사용.
fileid=file_text_open_write("example.txt");


file_text_writeln(fileid); //다음 줄로 이동
file_text_write_real(fileid,global.player_score); //다음 줄에 데이터를 기록



file_text_close(fileid);

 

텍스트 파일 읽기는 기록할 때처럼 아래와 같은 형식으로 읽습니다.

 



fn=file_text_open_read("example.txt"); ◀  ※ 중요 : 읽을 텍스트 파일을 열고, 호출한 파일 id를 변수에 할당

     ...

< 호출한 파일 id에서 데이터를 읽음 >

     ...

file_text_close(fn); ◀  ※ 중요 : 호출한 파일을 닫는다


 

데이터를 기록할 때는 문자열로 기록할 때 텍스트 줄을 생각할 필요 없이 미리 텍스트를 구성하여
기록할 수 있지만, 데이터를 읽을 때는 한 줄씩 읽어야 해요.
파일을 읽을 때는 아래의 함수를 사용합니다.

 



file_text_read_real(fileid) : 숫자를 읽음
file_text_read_string(fileid) : 문자열을 읽음

file_text_readln(fileid) : 텍스트를 읽을 다음 줄로 이동(개행)


 

기록할 때와 마찬가지로 문자열과 숫자를 구분하여 텍스트를 읽어야 합니다.
그리고 다음 줄을 읽어야 할 때는 먼저 file_text_readln를 사용하여 다음 줄로 넘어간 후,
데이터를 읽으면 됩니다.

 



예)
fileid=file_text_open_read("example.txt");


file_text_readln(fileid); //다음 줄로 이동
global.text=file_text_read_string(fileid); //다음 줄의 데이터를 읽음



file_text_close(fileid);

 

텍스트를 읽을 때, 모든 데이터를 읽었는지 확인할 필요가 있는데, 아래 함수를 사용하면 모든 데이터를

읽어 텍스트의 끝에 도달했는지 확인할 수 있습니다.

 



file_text_eof(fileid) : 스트의 맨 끝에 도달하였는지를 체크. 끝에 도달했다면 true,
그렇지 않다면 false를 반환
※ 텍스트의 끝 줄이 비었거나, 끝 줄에 내용이 있는 경우 끝 줄을 읽어야 끝에 도달한

것으로 처리합니다.

file_text_eoln(fileid) : 텍스트 현재 줄의 끝에 도달하였는지 체크. 끝에 도달했다면 true,

그렇지 않다면 false를 반환
※ 텍스트에서 현재 줄을 읽은 후, 다음 줄로 넘어가지 않았거나, 읽을 줄이 없는 경우

true 를 반환

 

또한 아래 함수를 사용하면 지정한 파일이 있는지도 체크할 수 있습니다.

 



file_exists(fname) : 지정한 파일이 있는지 체크. 있을 경우 true, 없다면 false 를 반환

 

 

 

300x250

댓글