UncompressPackMemory()
Синтаксис
Result = UncompressPackMemory(#Pack , *Buffer , Size [, PackedFilename$])
Описание
Распаковывает и помещает в выходной буфер памяти текущую запись архива, просматриваемую с помощью ExaminePack() и NextPackEntry().
Параметры
#Pack Номер, идентифицирующий файл архива, текущую запись которого требуется распаковать. *Buffer Адрес выходного буфера памяти, в который будут помещены распакованные данные. Size Размер выходного буфера памяти. PackedFilename$ (дополн.) Имя файла используемое в архиве для идентификации записи, которую требуется распаковать. Если этот параметр не указан, будет распакована текущая запись, просматриваемая с помощью ExaminePack() и NextPackEntry(). Если этот параметр указан, запись с данным именем становится текущей для функции NextPackEntry().
Возвращаемое значение
Возвращает размер распакованных данных, если операция распаковки и записи в буфер памяти прошла успешно, в противном случае -1.
Пример
UseZipPacker() ; Регистрируем в программе плагин с поддержкой сжатия Zip... Define Size = 10 *Buffer= AllocateMemory(20) If CreatePack(0, "c:\mycompressedfiles.zip") ; Создаёт архивный файл AddPackMemory(0, *Buffer, Size, "1.txt") ; Сжимает 10 байт данных из *Buffer и помещает в архив. AddPackMemory(0, *Buffer, Size, "2.txt") AddPackMemory(0, *Buffer, Size, "3.txt") ClosePack(0) ; Закрывает созданный архивный файл EndIf If OpenPack(0, "c:\mycompressedfiles.zip") ; Открываем файл архива. If ExaminePack(0) ; Список всех записей... UncompressPackMemory(0, *Buffer, Size, "2.txt") ; Распаковывает запись с именем "2.txt" в *Buffer и делает её текущей. While NextPackEntry(0) ; Этот цикл будет действовать от записи следующей за "2.txt" Debug "Имя: " + PackEntryName(0) + ", Размер: " + PackEntrySize(0) Wend EndIf ClosePack(0) ; Закрывает открытый архивный файл EndIf
См. также
OpenPack(), ExaminePack(), NextPackEntry()
Поддерживаемые OS
Все