DS 맵 데이터 저장하기
이 문서는 DS 맵 데이터를 문자열 형식으로 변환하여 .ini 또는 .txt 파일에 저장하는 방법을 설명합니다. 변환된 문자열은 나중에 ds_map_read() 함수를 사용하여 새로운 DS 맵으로 읽어올 수 있습니다. DS 맵 내의 모든 실수, 문자열 및 배열 값(배열 내의 배열 포함)은 문자열로 올바르게 저장되지만, 구조체는 지원되지 않습니다.
함수 구문
ds_map_write(id);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
id | DS Map | 사용할 데이터 구조의 핸들 |
반환 값
- String: 변환된 문자열
예제 코드
다음은 DS 맵을 ini 파일에 저장하는 예제입니다.
ini_open("map.ini");
var t_string;
t_string = ds_map_write(inventory);
ini_write_string("Saved", "0", t_string);
ini_close();
위 코드는 ini 파일을 열고, ds_map_write()
함수를 사용하여 문자열을 생성한 후, 이 문자열을 임시 변수 "t_string"에 저장합니다. 마지막으로, 이 문자열을 ini 파일에 기록하고 파일을 닫습니다.
활용 예제
예제 1: DS 맵 생성 및 저장
var inventory = ds_map_create();
ds_map_add(inventory, "gold", 100);
ds_map_add(inventory, "health_potion", 5);
ini_open("map.ini");
var t_string = ds_map_write(inventory);
ini_write_string("Saved", "0", t_string);
ini_close();
ds_map_destroy(inventory);
예제 2: DS 맵 읽기
ini_open("map.ini");
var t_string = ini_read_string("Saved", "0", "");
var new_inventory = ds_map_read(t_string);
ini_close();
// 사용 후 DS 맵 삭제
ds_map_destroy(new_inventory);
예제 3: 중첩 배열 저장
var inventory = ds_map_create();
var items = ds_list_create();
ds_list_add(items, "sword");
ds_list_add(items, "shield");
ds_map_add(inventory, "items", items);
ini_open("map.ini");
var t_string = ds_map_write(inventory);
ini_write_string("Saved", "0", t_string);
ini_close();
ds_map_destroy(inventory);
ds_list_destroy(items);
위의 예제들은 DS 맵을 생성하고, 데이터를 추가한 후, 이를 문자열로 변환하여 ini 파일에 저장하는 방법을 보여줍니다. 각 예제는 다양한 상황에서 DS 맵을 활용하는 방법을 설명합니다.