Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. ReadWrite-Flag. Was bedeutet das wirklich
Forum Updated to NodeBB v4.3 + New Features

ReadWrite-Flag. Was bedeutet das wirklich

Scheduled Pinned Locked Moved Unsolved German
3 Posts 2 Posters 509 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    monem
    wrote on last edited by monem
    #1

    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();
    }
    
    JonBJ 1 Reply Last reply
    0
    • M monem

      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();
      }
      
      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by
      #2

      @monem
      Sie koennen dass mit ReadWrite machen, wenn Sie es wollen. Was sind da_out & da_in? Sie brauchen QFileDevice::seek(0); nach Datei schreiben und vor lesen.

      M 1 Reply Last reply
      2
      • JonBJ JonB

        @monem
        Sie koennen dass mit ReadWrite machen, wenn Sie es wollen. Was sind da_out & da_in? Sie brauchen QFileDevice::seek(0); nach Datei schreiben und vor lesen.

        M Offline
        M Offline
        monem
        wrote on last edited by monem
        #3

        @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.

        1 Reply Last reply
        3

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved