Écriture avec QDataStream
Bonjour,
Un petit problème se pose à moi, c'est quelque chose de tout à fait trivial, mais je n'arriver pas à trouver la source du dysfonctionnement.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| if(m_countFile.open(QIODevice::ReadOnly)) {
QDataStream stream(&m_countFile);
QTime time;
stream >> time;
m_countFile.close();
if(m_countFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
stream.setDevice(&m_countFile);
stream << time.addSecs(60);
m_countFile.close();
if(m_countFile.open(QIODevice::ReadOnly)) {
stream.setDevice(&m_countFile);
stream >> time;
m_countFile.close();
}
}
} |
L'idée est de lire l'objet QTime sérialisé dans le fichier. Si le fichier est vide (ce qui est le cas au début), l'objet time est initialisé à 0. Ensuite, je rouvre le fichier avec le flag truncate pour écraser son contenu par la nouvelle valeur de time. Le dernier morceau sert à relire le fichier pour voir le résultat de l'opération.
L'exécution se déroule sans encombres, passant par chaque étape, mais le fichier reste désespérément vide.