-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathTGZipTgz.h
More file actions
65 lines (54 loc) · 2.64 KB
/
TGZipTgz.h
File metadata and controls
65 lines (54 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/////////////////////////////////////////////////////////////////////////////
//TGZipTgz.h
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "TArchive.h"
#ifndef _TGZIPTGZ_CLASS_H
#define _TGZIPTGZ_CLASS_H
class TGZipTgz: public TArchive
{
private:
//Zagolovok fayla v arhive
typedef struct __GZIPTGZ_FILE_HEAD
{
BYTE ID1;
BYTE ID2;
BYTE METHOD;
BYTE FLAGS;
BYTE FTIME1;
BYTE FTIME2;
BYTE FTIME3;
BYTE FTIME4;
BYTE XFLAGS;
BYTE HOST_OS;
} GZIPTGZ_FILE_HEAD;
//konec arhiva
typedef struct __GZIPTGZ_ARC_END
{
DWORD CRC;
DWORD ORIG_SIZE;
} GZIPTGZ_ARC_END;
//strukturi dlya chteniya arhiva
GZIPTGZ_FILE_HEAD m_FILE_HEAD; //zagolovok fayla
GZIPTGZ_ARC_END m_ARC_END; //konec arhiva
char m_buffer[MAX_LEN_STR];
//vnutrennie funkcii
int AnalyzeFileHead(GZIPTGZ_FILE_HEAD&); //obrabotka zagolovka fayla
public:
TGZipTgz(DataForArchive& dfa, LanguageMessages& langmsg, LanguageResults& langres, char* namearch = "GZIP/TGZ"): TArchive(dfa, langmsg, langres, namearch) {;}
~TGZipTgz() {;}
int TestFile (char*); //fayl yavlyaetsya arhivom GZIP
int AnalyzeInfoOfArc(char*); //opredelit' parametri (info) arhiva
ULONGLONG GetUnpackSizeFiles () {return m_UnpackSizeFiles;} //vozvrat real'nogo razmera faylov v BYTEs
ULONGLONG GetPackSizeFiles () {return m_PackSizeFiles;} //vozvrat sjatogo razmera faylov v BYTEs
ULONGLONG GetArchiveSize () {return m_ArchiveSize;} //vozvrat razmera arhiva v BYTEs
unsigned GetNumberFiles () {return m_NumberFiles;} //vozvrat kolichestvo faylov v arhive
char* GetOriginalName () {return m_pOriginalName;} //vozvrat imya zapakovannogo fayla
short GetHostOS () {return m_HostOS;} //vozvrat ispolzuemaya pri arhivirovanii OS | 0x00 - MS-DOS | 0x01 - Amiga | 0x02 - Vax VMS | 0x03 - Unix | 0x04 - VM/CMS | 0x05 - Atari ST | 0x06 - OS/2 | 0x07 - Mac OS | 0x08 - Z-System | 0x09 - CP/M | 0x0A - TOPS-20 | 0x0B - WinNT | 0x0C - SMS/QDOS | 0x0D - Acorn RISC
short GetMethodPack () {return m_MethodPack;} //vozvrat metod sjatiya | 0x08 - (Deflated)
short GetMethodPackAdd () {return m_MethodPackAdd;} //vozvrat metod sjatiya | 0x00 - normal'noe (Normal) | 0x02 - maksimal'noe (Best) | 0x04 - bistroe (Fast)
double GetRatioArchiveSize () {return m_RatioArchiveSize;} //sjatie ot razmera arhiva (%)
double GetRatioPackFileSize() {return m_RatioPackFileSize;} //sjatie ot upak razmera faylov (%)
BOOL GetMainComment () {return m_MainComment;} //TRUE - arhiv imeet kommentariy FALSE - net
};
#endif //_TGZIPTGZ_CLASS_H