버퍼의 끝 확인하기 (If End Of Buffer)
이 문서는 버퍼의 읽기/쓰기 위치가 끝에 도달했는지를 확인하는 방법에 대해 설명합니다. Create Buffer 액션에서 반환된 고유한 버퍼 ID 값을 사용하여 이 액션을 사용할 수 있습니다.
작동 원리
- 버퍼의 끝에 도달했는지 확인: 액션이
true를 반환하면 읽기/쓰기 위치가 버퍼의 모든 사용 가능한 데이터의 끝에 도달한 것이고,false를 반환하면 그렇지 않은 것입니다. not플래그를 사용하면 읽기/쓰기 위치가 버퍼의 끝에 도달하지 않았는지를 확인할 수 있습니다.
액션 구문
If End Of Buffer(buffer)
인수 설명
| 인수 | 설명 |
|---|---|
| Buffer | 버퍼 인덱스 (변수에 저장됨) |
예제
아래 예제는 인스턴스 내에서 DS 리스트를 생성하고, 지정된 버퍼의 데이터를 읽어 리스트에 추가하는데, 버퍼의 끝에 도달할 때까지 반복됩니다.
// DS 리스트 생성
var data_list = ds_list_create();
// 버퍼에서 데이터 읽기
while (!If End Of Buffer(buffer_id)) {
var data = buffer_read(buffer_id);
ds_list_add(data_list, data);
}
// 반복 종료 후 리스트 사용할 수 있음
show_data(data_list);
이 예제에서는 buffer_id라는 변수에 저장된 버퍼 인덱스를 사용하여 데이터가 끝날 때까지 반복하는 구조입니다.
활용 예제
1. 사용자 입력 처리
사용자가 입력한 데이터를 바탕으로 버퍼를 읽고, 최종적으로 모든 입력값을 처리할 수 있습니다.
while (!If End Of Buffer(input_buffer)) {
var input = buffer_read(input_buffer);
// 입력 처리 로직
}
2. 게임 내 아이템 목록
게임에서 아이템 정보를 읽고, 모든 아이템을 리스트에 추가하여 사용자의 인벤토리를 구성할 수 있습니다.
var item_list = ds_list_create();
while (!If End Of Buffer(item_buffer)) {
var item = buffer_read(item_buffer);
ds_list_add(item_list, item);
}
3. 로그 파일 분석
로그 파일 데이터를 읽어 들여, 필요한 정보를 필터링하고 저장하는 데 유용하게 사용할 수 있습니다.
var log_entries = ds_list_create();
while (!If End Of Buffer(log_buffer)) {
var entry = buffer_read(log_buffer);
// 특정 조건에 맞는 로그만 추가
if (is_valid_log(entry)) {
ds_list_add(log_entries, entry);
}
}
요약
If End Of Buffer 액션은 버퍼의 끝에 도달했는지를 확인하는 데 유용한 도구입니다. 다양한 어플리케이션에서 데이터를 처리할 때 매우 유용하게 사용될 수 있습니다.