Hello, I am trying to read from and write to a file. But to do this, I use QByteArray to pass it between some of the modules. But seems like things does not work like I predicted.
Simply, on module A, I write some informations to a QByteArray. Then I pass it to module B which writes to a file, and I do it for a bunch of times. But when I try to read from this file, something goes wrong. Here is a simplified version of what am I trying to do. #include <QFile> #include <QDataStream> #include <QByteArray> #include <QDebug> int main() { // module A creates a byte array QByteArray bai; QDataStream out(&bai, QIODevice::WriteOnly); out << QString("A QString"); // writes some information on it // passing bai to module A // module A do something... QFile file("file.dat"); file.open(QIODevice::WriteOnly); QDataStream out2(&file); // and module A write those datas to a file. out2 << bai.size(); out2 << bai; // and module B starts if (file.isOpen()) file.close(); file.open(QIODevice::ReadOnly); QDataStream in(&file); QString str; int a; // extracts size information in >> a >> str; // extracts QString file.close(); qDebug() << str << a; // output: "\u0000\u0012A QString" 22 return 0; } I guess using QByteArray get things messed up. But then is there any advice to pass the information to another function? Thank you, Sina
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest