Je veux écrire une QString dans un fichier texte dans un ziparchive avec QuaZip. J'utilise Qt Creator sur WinXP. Avec mon code le fichier texte dans l'archive est créé mais vide.
QDomDocument doc;
/* doc is filled with some XML-data */
zipfile = new QuaZip("test.zip");
zipfile->open(QuaZip::mdCreate);
QuaZipFile file(zipfile);
file.open(QIODevice::WriteOnly, QuaZipNewInfo("foo.xml"));
QTextStream ts ( &file );
ts << doc.toString();
file.close();
zipfile.close();
Lorsque j'essaie avec un QFile, cela fonctionne comme prévu :
QDomDocument doc;
/* doc is filled with some XML-data */
QFile file("test.xml");
file.open(QIODevice::WriteOnly);
QTextStream ts ( &file );
ts << doc.toString();
file.close();
Je trouve le bon contenu dans test.xml, donc la chaîne est là, mais d'une manière ou d'une autre le QTextStream ne veut pas travailler avec le QuaZipFile.
Lorsque je le fais avec un QDataStream au lieu de QTextStream, il y a une sortie, mais pas une sortie correcte. QDomDocument doc ; /* doc est rempli avec des données XML */
zipfile = new QuaZip("test.zip");
zipfile->open(QuaZip::mdCreate);
QuaZipFile file(zipfile);
file.open(QIODevice::WriteOnly, QuaZipNewInfo("foo.xml"));
QDataStream ts ( &file );
ts << doc.toString();
file.close();
zipfile.close();
Le fichier foo.xml dans le test.zip est rempli de données, mais mal formaté (entre chaque caractère, il y a un caractère 'nul' supplémentaire).
Comment puis-je écrire la chaîne dans le fichier texte de l'archive zip ?
Merci, Paul