|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 22, 2004 15:56:09 · Поправил: Sm_Andrei Подскажите, пожалуйста, структуру этого архива, можно ссылочку. Пробывал через google(gg) искать - находил совсем не то. Поиск: "структура CAB файла", "CAB file structure". Весь Microsoft(вроде как) облазил, ничего путного не нашёл. Хотя бы заголовок его знать. Зараннее большое спасибо! ЗЫ: ещё хотелось бы узнать его метод упаковки. |
|
|
Дата: Янв 22, 2004 16:59:19 · Поправил: Xrusty |
|
|
Дата: Янв 22, 2004 17:54:40 · Поправил: Dr.Golova Ну если тебя интересуют только заголовки...
typedef struct sCAB_HEADER {
tDWORD Sign; // file signature 'MSCF' (CAB_SIGNATURE)
tDWORD HdrCrc; // header checksum (0 if not used)
tDWORD CabSize; // cabinet file size
tDWORD FoldCrc; // folders checksum (0 if not used)
tDWORD FilesOfs; // offset of first CAB_ENTRY (file entry)
tDWORD FilesCrc; // files checksum (0 if not used)
tWORD Version; // cabinet version (CAB_VERSION)
tWORD FoldNum; // number of folders
tWORD FilesNum; // number of files
tWORD Flags; // cabinet flags (CAB_FLAG_*)
tWORD SetID; // cabinet set id
tWORD CurCabNum; // zero-based cabinet number
} tCAB_HEADER, *pCAB_HEADER;
typedef struct sCAB_HDR_RES {
tWORD HdrRes; // header reserved size
tBYTE FoldRes; // folders reserved size
tBYTE DataRes; // data reserved size
} tCAB_HDR_RES, *pCAB_HDR_RES;
typedef struct sCAB_FOLDER {
tDWORD DataOfs; // offset of folder data
tWORD BlksNum; // number of 32k solid blocks
tWORD Compr; // compression type (CAB_COMPTYPE_*)
} tCAB_FOLDER, *pCAB_FOLDER;
typedef struct sCAB_ENTRY {
tDWORD USize; // uncompressed file size
tDWORD FolderOffs; // file offset in folder
tWORD FolderIdx; // file control id (CAB_FILE_*)
tWORD Date; // file date stamp, as used by DOS
tWORD Time; // file time stamp, as used by DOS
tWORD Attribs; // file attributes (CAB_ATTRIB_*)
} tCAB_ENTRY, *pCAB_ENTRY;
typedef struct sCAB_BLOCK {
tDWORD BlockCrc; // unpacked block checksumm
tWORD PSize; // packed block data size
tWORD USize; // unpacked block data size
} tCAB_BLOCK, *pCAB_BLOCK;
|
|
|
Дата: Янв 23, 2004 12:18:32 > ЗЫ: ещё хотелось бы узнать его метод упаковки Вообще CAB - это просто как-бы обертка, так что методов там может быть сколько угодно. Но стандартных - 4 штуки: 1) Store (без сжатия) 2) Defalte (то чем жмет zip) 3) LZX с оптимизирующими фильтрами (то чем жмет ASPack ;-) 4) Quantum (LZ77 + арифметическое кодирование) |
|
|
Дата: Янв 26, 2004 14:48:51 Xrusty Dr.Golova Благодарю за помощь! Очень интересная информация. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.052 |