ReadWrite-Flag. Was bedeutet das wirklich
-
Hallo allerseits, in einem Slot versuche ich eine Datei per open- Befehl und mit ReadWrite- mode zu öffnen: file.open(QIODEVICE::ReadWrite). Darin wird eine Integerzahl gespeichert. Diese zahl soll nach dem Schreibvorgang aus der Datei gelesen und in einem Widget z.B. QLable dargestellt werden. Nun dieser Vorgang funktioniert nicht wenn ich ReadWrite mode verwende. Ich frag mich warum die Datei nicht einfach mit ReadWrite nur einmal zum schreiben und lesen geöffnet und danach wieder schließen geschlossen werden kann wenn ich fertig bin. Der folgende Code habe ich zu diesem Zweck intuitiv überlegt, was wie gesagt nicht wie gewünscht funktioniert:
void MenueTable::on_delete_disch_clicked() { file.open(QIODevice::ReadWrite); da_out << magic_number; //Eine int-Zahl die, in die Datei geschrieben werden soll file.flush(); quint32 rooo; da_in >> rooo; //In diese Variable soll die int-Zahl aus der datei gelesen... ui->name_dish_le->setText(QString::number(rooo));//...und in einem Widget angezeigt werden file.close(); }
-
@JonB
Ah. seek(0). Klar. Der Zeiger muss natürlich wieder zurück vor dem Lesen . Das hatte ich überhaupt nicht bedacht. Besten Dank.da_out und da_in sind zwei variablen von QDataStream um mit binary-Dateinen zu arbeiten.
QFile file; QDataStream da_out; ... //Beispiel Konstruktor mit Initialisierungsliste MenueTable::MenueTable(QWidget *parent) : QDialog(parent), ui(new Ui::MenueTable), file(tr("C:/Test/matlab.txt")), da_out(&file), da_in(&file) { ui->setupUi(this); } ... file.open(QIODEVICE::ReadWrite); da_out<< "schreiben in binary Datei"; ...
nochmals vielen Dank.