Problem mit Quazip
Verfasst: 22. Oktober 2010 10:34
Hallo,
ich versuche mit Quazip aus einem Ziparchiv ein Textfile zu lesen und die einzelnen Linien in ein QStringList zu schreiben. Das klappt auch einigermaßen bis auf eins. Die Funktion readLine ( char * data, qint64 maxSize ) sollte -1 zurückgeben, wenn keine Linie mehr da ist, zum Lesen. Macht sie aber bei mir nicht.
Hier der Code:
Hat jemand ne Idee?
ich versuche mit Quazip aus einem Ziparchiv ein Textfile zu lesen und die einzelnen Linien in ein QStringList zu schreiben. Das klappt auch einigermaßen bis auf eins. Die Funktion readLine ( char * data, qint64 maxSize ) sollte -1 zurückgeben, wenn keine Linie mehr da ist, zum Lesen. Macht sie aber bei mir nicht.
Hier der Code:
Code: Alles auswählen
bool ZipHelper::ReadZip(QString archivePath, QString zipFile, QStringList* pText)
{
QuaZip zip(archivePath);
if(!zip.open(QuaZip::mdUnzip)) {
qWarning("testRead(): zip.open(): %d", zip.getZipError());
return false;
}
// zip.setFileNameCodec("IBM866");
qDebug("%d entries\n", zip.getEntriesCount());
QuaZipFileInfo info;
zip.goToFirstFile();
zip.getCurrentFileInfo(&info);
QuaZipFile file(&zip);
if(!zip.setCurrentFile(zipFile))
{
//QFile out;
qDebug() << "Error in Zipfile: " << zipFile;
return false;
}
qDebug() << "ZipFileName: " << file.getActualFileName();
if(!file.open(QIODevice::ReadOnly)) {
qWarning("testRead(): file.open(): %d", file.getZipError());
return false;
}
char buf[512];
qint64 x = 1;
qint16 i = 0;
do{
x = file.readLine(buf, 512);
qDebug() << "x." << i << " = " << x;
pText->append(buf);
i++;
}while(i < 1000 );
file.close();
return true;
}