PureBasic

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

Все

<- UncompressPackFile() - Оглавление Packer - UseBriefLZPacker()->