This page was last modified 11:25, 14 May 2008.
CS000948 - Getting trailer and header info from GZIP files
From Forum Nokia Wiki
| ID | CS000948 | Creation date | May 14, 2008 |
| Platform | S60 3rd Edition, FP1 | Tested on devices | Nokia N93 |
| Category | Symbian C++ | Subcategory | Files/Data |
| Keywords (APIs, classes, methods, functions): RFile, EZGZipFile, TEZGZipHeader, TEZGZipTrailer, RFile::Open(),EZGZipFile::IsGzipFileL(), EZGZipFile::LocateAndReadTrailerL(), EZGZipFile::ReadHeaderL(),EZGZipFile::EFText,EZGZipFile::EFHcrc, EZGZipFile::EFExtra,EZGZipFile::EFName,EZGZipFile::EFComment |
Overview
This snippet shows how to get the trailer and the header info from GZIP files.
The trailer part of GZIP file should contain the following data:
- CRC32
- Input size (calculated from the original uncompressed data)
The actual GZIP header is defined to contain the following fields:
- Fixed value for ID1 = 31
- Fixed value for ID2 = 139
- Compression method (8 is the standard)
- Flags (0 = no flags are set)
- Modification time (time stamp in Unix format)
- Extra flags (maximum compression - fastest algorithm)
- Operating System
This snippet can be self-signed.
MMP file
The following libraries are required:
LIBRARY efsrv.lib LIBRARY ezlib.lib
Header file
Source file
#include <ezgzip.h> #include <f32file.h> void GetGZipFileTrailerAndHeaderInfoL(RFs& aRfs, const TDesC& aFileName) { RFile file; TEZGZipHeader header; TEZGZipTrailer trailer; if (!EZGZipFile::IsGzipFileL(aRfs,aFileName)) { _LIT(KIsNotGZipFile,"File:%S is not in GZip format\n"); console->Printf(KIsNotGZipFile,&aFileName); console->Getch(); User::Leave(KErrGeneral); } EZGZipFile::LocateAndReadTrailerL(aRfs, aFileName, trailer); _LIT(KTrailer,"CRC32 = %d size = %d\n"); console->Printf(KTrailer,trailer.iCrc32,trailer.iSize); User::LeaveIfError(file.Open(aRfs,aFileName,EFileStream | EFileRead | EFileShareAny)); EZGZipFile::ReadHeaderL(file, header); _LIT(KFileId1,"ID1 = %d\n"); console->Printf(KFileId1,header.iId1); _LIT(KFileId2,"ID2 = %d\n"); console->Printf(KFileId2,header.iId2); _LIT(KCompressionMethod,"compression method = %d\n"); console->Printf(KCompressionMethod,header.iCompressionMethod); _LIT(KFlags,"flags = %d\n"); console->Printf(KFlags,header.iFlags); _LIT(KTimeStamp,"time stamp = %d\n"); console->Printf(KTimeStamp,header.iTime); _LIT(KExtraFlags,"extra flags %d\n"); console->Printf(KExtraFlags,header.iExtraFlags); _LIT(KOS,"OS %d\n"); console->Printf(KOS,header.iOs); if (header.iFlags & EZGZipFile::EFText) { _LIT(KText,"text flag set\n"); console->Printf(KText); } if (header.iFlags & EZGZipFile::EFHcrc) { _LIT(KCrc16,"CRC16 = %d\n"); console->Printf(KCrc16,header.iCrc); } if (header.iFlags & EZGZipFile::EFExtra) { _LIT(KExtraLength,"extra length %d\n"); console->Printf(KExtraLength,header.iXlen); HBufC *buf = HBufC::NewLC(header.iExtra->Length()); buf->Des().Copy(*header.iExtra); console->Printf(*buf); CleanupStack::PopAndDestroy(); //buf } if (header.iFlags & EZGZipFile::EFName) { _LIT(KFName,"fname: %S\n"); HBufC *buf = HBufC::NewLC(header.iFname->Length()); buf->Des().Copy(*header.iFname); console->Printf(KFName,buf); CleanupStack::PopAndDestroy(); //buf } if (header.iFlags & EZGZipFile::EFComment) { _LIT(KComment,"comment: %S\n"); HBufC *buf = HBufC::NewLC(header.iComment->Length()); buf->Des().Copy(*header.iComment); console->Printf(KComment,buf); CleanupStack::PopAndDestroy(); //buf } }
Postconditions
The trailer and header info from the given GZIP file is printed to the console.
See also
CS000949 - Compressing and decompressing GZIP files
The GZIP format is specified in http://www.faqs.org/rfcs/rfc1952.html.
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| PCM to wav | gpalvia | Symbian Media (Graphics & Sounds) | 2 | 2008-02-04 14:08 |
| How can activate the Thumb build configuration in vc.Net2003 | manjunaths | Symbian User Interface | 0 | 2006-12-13 12:27 |
| cell id ......error in compiling | vvsnaresh | General Symbian C++ | 6 | 2005-03-15 12:00 |
| css related bug in 7610 | dr.seltsam | Browsing and Mark-ups | 1 | 2004-07-09 15:40 |
| Removal of header from JPEG | vinay_singh | General Symbian C++ | 4 | 2008-02-08 18:06 |

