Fantom
I am... All of me
Гл. Администратор
Репутация: 1325
Offline
Пол:  Награды:  ![За постоянность! [500 дней на форуме] За постоянность! [500 дней на форуме]](https://forum.hellroom.ru/awards/e0371460a203dd46d2dc161571bf6144_hellroomforum_time_gold.gif) ![За лояльность! [+1000 репутации] За лояльность! [+1000 репутации]](https://forum.hellroom.ru/awards/49d1e615667c15086498002286ccd3e9_hellroomforum_good_gold.gif)   ...
API: GameMaker Studio Master
Сообщений: 5026
|
 |
« Ответ #2 : Май 26, 2016, 13:40:21 » |
|
Создать на GMS архиватор-упаковыватель файлов? Теоретически, можно, было бы желание и потребность. Как делаются оригинальные архиваторы, я не в курсе, но, скорее всего, это делается функциями file_bin_*
Для создания файла считывать нужные файлы в "память" программы с помощью file_bin_*, записать символ-разделитель, который будет означать место, где заканчивается один файл и начинается другой. Дальше весь этот массив данных записать в один файл с помощью тех же функций. Считывать такие файлы (по крайней мере, извлекать оттуда и пересохранять) только этой программой, то есть её алгоритмом (код же можно и в другую свою программу скопировать). Искать символ-разделитель, прочитать данные, которые идут перед ним, и сохранить - это первый файл, и так далее. Для сокращения объёма файла используют замену, когда ищут часто повторяющиеся последовательности символов и заменяют их на сокращённую версию.
GMS ограничен "песочницей", то есть сохранять он может не в любое расположение, а только в AppData. Открывать файлы можно из любого расположения, если запрашивается с помощью диалога открытия файла и на платформе Windows.
Если сложно, то так уж получилось, как был понят вопрос, так и отвечен.
|