buffer_decompress 함수 설명
buffer_decompress
함수는 zlib 압축을 사용하여 데이터를 저장하는 버퍼의 압축 해제된 데이터를 포함하는 새로운 버퍼를 반환합니다. 이 함수는 압축 해제할 버퍼를 입력으로 받아, 압축 해제가 완료된 새로운 버퍼를 반환합니다. 만약 압축 해제에 실패할 경우(예: 압축되지 않은 버퍼를 제공한 경우) 함수는 -1을 반환합니다.
문법
buffer_decompress(buffer);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
buffer | Buffer | 압축 해제할 버퍼의 인덱스입니다. |
반환 값
- 성공 시: 새로운 Buffer
- 실패 시: -1
예제 코드
var _cmpBuff = buffer_load("Player_Save.sav");
var _srcBuff = buffer_decompress(_cmpBuff);
global.DataString = buffer_read(_srcBuff, buffer_string);
위의 코드는 먼저 저장된 버퍼를 로드한 후, 이를 압축 해제하고, 마지막으로 압축 해제된 버퍼에서 문자열 데이터를 읽어 전역 변수에 저장합니다.
활용 및 응용 예제
예제 1: 파일에서 압축된 데이터 읽기
var _fileBuffer = buffer_load("data_file.dat");
var _decompressedBuffer = buffer_decompress(_fileBuffer);
if (_decompressedBuffer != -1) {
// 압축 해제된 데이터 처리
}
예제 2: 압축 해제 후 데이터 처리
var _compressedData = buffer_load("compressed_data.dat");
var _uncompressedData = buffer_decompress(_compressedData);
if (_uncompressedData != -1) {
var dataLength = buffer_get_size(_uncompressedData);
// 데이터 길이에 따라 처리
}
예제 3: 오류 처리
var _bufferToDecompress = buffer_load("invalid_data.dat");
var _result = buffer_decompress(_bufferToDecompress);
if (_result == -1) {
show_error("압축 해제에 실패했습니다.", true);
}
예제 4: 여러 버퍼 압축 해제
var buffers = [buffer_load("file1.dat"), buffer_load("file2.dat")];
var decompressedBuffers = [];
for (var i = 0; i < array_length(buffers); i++) {
var _decompressed = buffer_decompress(buffers[i]);
if (_decompressed != -1) {
array_push(decompressedBuffers, _decompressed);
}
}
이와 같은 방식으로 buffer_decompress
함수를 활용하여 다양한 데이터 처리 작업을 수행할 수 있습니다.