ich habe eine Klasse, die sich nur dem schreiben und lesen von Dateien widmet und sieht wie folgt aus:
Code: Alles auswählen
#include "zlib.h"
#define _ZFILE_OPEN_MODE char zattr[8]; char *i = zattr;
#define ZFILE_OPEN_MODE_WRITE _ZFILE_OPEN_MODE *i++ = 'w'; *i++ = 'b'; *i++ = (char)47+clevel; *i++ = '\0';
#define ZFILE_OPEN_MODE_READ _ZFILE_OPEN_MODE *i++ = 'r'; *i++ = 'b'; *i++ = '\0';
[... lesen:]
QString xml;
ZFILE_OPEN_MODE_READ;
gzFile zfile = ::gzopen( pfad.data(), zattr );
if( ! zfile ) {
return false;
}
const int buffsize = 1024 * 4;
char rbuff[buffsize];
int readsize;
while( (readsize = gzread( zfile, rbuff, buffsize )) > 0 ) {
xml += QString(std::string(rbuff, rbuff + readsize ).c_str());
}
::gzclose( zfile );
[... schreiben:]
const char *xmlc = (const char *)xml;
int clevel = 6;
ZFILE_OPEN_MODE_WRITE;
gzFile zfile = ::gzopen( (const char *)pfad, zattr );
if( ! zfile ) {
return false;
} else {
::gzwrite( zfile, (voidp)xmlc, (unsigned int)xml.length() );
::gzclose( zfile );
return true;
}
Danke
Lykurg