Дата: 9 января 2002г.
Этот пакет в первую очередь может пригодиться разработчикам игр, т.е. тем, кто при производстве программ использует большое количество всевозможных ресурсов - графики, звуков и т.д. Однако не дело уподобляться ребятам, сделавшим Worms Armageddon, и держать все ресурсы в сотнях (а это далеко не предел) файлах. На мой взгляд, гораздо экономичнее , хотя и не всегда удобнее, хранить все в одном архиве, или всевдо архиве (в зависимости от того, используется ли в них сжатие). Вот с этой целью и был создан GPAManager. Суть его сводится к следующему. На стадии разработки Вы формируете архив(ы) GPA с помощью GPAManager.exe, запаковывая в них все необходимые ресурсы. А уже в процессе работы Вашей программы Вы, подключая необходимые функции из библиотеки GPASpec.dll осуществляете доступ к своим запакованым ресурсам.
function GPACreateArchive(GPAName: PChar): LongInt;
|
Создает новый архив с именем GPAName. Возвращает 0, если открытие прошло успешно. Поскольку одновременно может быть открыт только один архив, перед открытием нового архива необходимо закрыть предыдущий (GPACloseArchive)
|
function GPACloseArchive(Save: Boolean): LongInt;
|
Закрывает текущий архив. Если флаг Save имеет значение True, перед закрытием архив сохраняется
|
function GPALoadArchive(GPAName: PChar): LongInt;
|
Загружает архив и именем GPAName. Возвращает 0, если открытие прошло успешно
|
function GPASaveArchive: LongInt;
function GPAGetArchiveSize: LongInt;
|
Возвращает суммарный сжатый размер хранящихся файлов. Если файлов нет, возвращает -1
|
function GPAGetArchiveRealSize: LongInt;
|
Возвращает суммарный реальный размер всех хранящихся файлов. Если файлов нет, возвращает -1
|
function GPAGetTotalFiles: LongInt;
|
Возвращает общее количество хранящихся файлов
|
function GPAArchiveChanged: Boolean;
|
Возвращает True, если архив после открытия/создания был подвержен изменениям (добавление, удаление файлов и т.д)
|
function GPAArchiveActive: Boolean;
|
Возвращает True, если архив открыт
|
function GPAGetArchiveName: PChar;
|
Возвращает имя текущего открытого архива
|
function GPAAddFromFile(AddName: PChar): LongInt;
|
Добавляет в архив файл с именем AddName с диска
|
function GPAAddFromStream(FIn: PStream; FSize: LongInt; FFName: PChar): LongInt;
|
Добавляет в архив файл из потока FIn. Необходимо указать объем чмтаемых данных (например FIn.Size), и имя, под которым файл будет храниться
|
function GPAExtractToFileByID(id: LongInt; FFName: PChar): LongInt;
|
Извлекает файл с индексом id на диск под именем FFName
|
function GPAExtractToStreamByID(id: LongInt;
var FOut: PStream): LongInt;
|
Извлекает файл с индексом id в поток FOut
|
function GPAGetIDByName(FName: PChar; SCase: Boolean): Integer;
|
Возвращает индекс файла с именем FName. Параметр SCase определяет чуствительность к регистру при поиске имени.
|
function GPAGetNameByID(id: LongInt): PChar;
|
Возвращает имя файла с индексом id
|
function GPAGetSizeByID(id: LongInt): LongInt;
|
Возвращает сжатый размер файла с индексом id
|
function GPAGetRealSizeByID(id: LongInt): LongInt;
|
Возвращает реальный размер файла с индексом id
|
function GPARenameByID(id: LongInt; FName: PChar): LongInt;
|
Задает файлу с индексом id новое имя FName
|
function GPADeleteByID(id: LongInt): LongInt;
|
Удаляет файл с индексом id
|