Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Архивы и Архиваторы    >>    swarcher
   
 
 SWArcher - Чтение оглавлений архивных файлов   Виктор Вагнер 04.04.1995

SWArcher v1.00 beta - это библиотека для Turbo Pascal 6.0 и выше, позволяющая читать оглавления архивов наиболее распространенных форматов. Архивы распознаются не по расширению, а по формату. SFX архивы распознаются для всех, кроме ZOO, который их и не создает.



11k 
 

SWArcher Softweyr archiver interface version 1.00 beta Copyright (c) 1995 by SoftWeyr Введение SWArcher это библиотека для Turbo Pascal 6.0 и выше, позволяющая читать оглавления архивов наиболее распространенных форматов. В настоящее время поддерживаются форматы: PKZIP - Ver 2.04g и ранее ARJ - Ver 2.41 и ранее BSA - Ver 1.95 ZOO RAR - Ver 1.50, но не 1.30 PKARC LHA/LHICE/LHARC - все известные мне версии Все виды архивов распознаются не по расширению, а по формату. SFX архивы распознаются для всех кроме ZOO, который их и не создает. При разработке использованы исходные тексты пакета OOAV, разработанного Edwin Groothuis, MavEtJu software. КАК ЭТО РАБОТАЕТ: 1. Вы должны открыть файл с помощью процедуры OpenArchive function OpenArchive( Name:string):PArchive; Которая возвращает указатель на объект типа TArchive или nil, если файл не существует, не читается или не относится к одному из распознаваемых типов. 2. Вы должны вызывать метод FindNext полученного объекта до тех пор, пока он не вернет False. Function TArchive.FindNext(var sr:TArcRec):boolean; В качестве параметра сей функции передается запись типа TArcRec=Record Name:PathStr; Attr:Word; Time:LongInt; Size:LongInt; PackedSize:LongInt; end; Где Name - полный путь (если архив с подкаталогами), Attr - атрибуты файла. Time - время создания в том же формате, что и в GetFTime, Size- размер неупакованного файла и PackedSize - соответственно. Файлы возвращаются в порядке их расположения в архиве. Если вам хочется иметь нечто, что работает с неупакованной структурой каталогов так же, то есть объект TDosDir=object(TArchive). Если у вас архив не в файле, а в EMS или RAM и доступен как обьект - наследник от TStream, то вы можете создать объект для его чтения явыным образом, передав указатель на поток его конструктору. В этом случае вам придется явно указать архив какого типа вы собираетесть читать, написав что-то вроде: MyArchive:=New(PZIPArchive,Init(MyStream)) В качестве демонстрационного примера к пакету прилагается программка FileList.PAS создающая список файлов на дискетах - что-то вроде борлан- довских FILELIST.DOC Sapienti sat. Если вам нужно больше информации - читайте исходники Vitus Wagner E-Mail:vitus@agropc.msk.su FIDO:2:5020/358.5