On 03/07/2016 09:19 AM, Sina Dogru wrote:
2016-03-07 15:51 GMT+02:00 william.croc...@analog.com <mailto:william.croc...@analog.com> <william.croc...@analog.com <mailto:william.croc...@analog.com>>: Some tool kits use a buffer in their version of QDataStream. You can not in general be sure that anything has actually been written to 'bai' here because 'out' is still alive. So I would be sure if I write it in a block I guess?
You did not address my other two observations. > You are reading an 'int' but you did not insure that an 'int' was written. > You wrote a QByteArray, but are then reading a QString.
int main(int argc, char *argv[]) { QFile file("file.dat"); { // 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... 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 qDebug() << str << a; // output: "" 22 return 0; } But it also gives the same output. Or am I misunderstood? Thank you
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest