Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Structure in eine Datei schreiben
Forum Updated to NodeBB v4.3 + New Features

Structure in eine Datei schreiben

Scheduled Pinned Locked Moved Unsolved German
4 Posts 3 Posters 1.7k Views 1 Watching
  • 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.
  • T Offline
    T Offline
    Thomas 63
    wrote on last edited by
    #1

    Hallo, guten Morgen!

    Ich versuche, eine Structure in eine Datei zu schreiben, als Datentransfer in ein anderes Programm.

    Folgender Code:

    typedef struct pumpe{
    public:
        QString hersteller = "";
        QString modell = "";
        QString seriennummer = "";
        QString kunde = "";
        QString projekt = "";
    }pumpe_t;
    
    bool MainWindow::pump2struct(){
        pumpe_t exportdaten[1];
        bool export_p = true;
        exportdaten[0].hersteller = ui->i_hersteller->text() + "\n";
        exportdaten[0].modell = ui->i_typ->text() + "\n";
        exportdaten[0].seriennummer = ui->i_serial->text() + "\n";
        exportdaten[0].kunde = ui->i_kunde->text() + "\n";
        exportdaten[0].projekt = ui->i_projekt->text() + "\n";
        string fileName = QFileDialog::getSaveFileName(this, tr("Exportieren"), QDir::currentPath(), "Export (*.pppex)").toStdString();
        ofstream output_file(fileName, ios::binary);
        output_file.write((char*)&exportdaten, sizeof(exportdaten));
        output_file.close();
    }
    
    

    produziert in meiner Exportdatei ohne Fehlermeldungen bloss binären Müll (nach jeder Ausführung anderen).

    Was mache ich falsch?

    K 1 Reply Last reply
    0
    • T Thomas 63

      Hallo, guten Morgen!

      Ich versuche, eine Structure in eine Datei zu schreiben, als Datentransfer in ein anderes Programm.

      Folgender Code:

      typedef struct pumpe{
      public:
          QString hersteller = "";
          QString modell = "";
          QString seriennummer = "";
          QString kunde = "";
          QString projekt = "";
      }pumpe_t;
      
      bool MainWindow::pump2struct(){
          pumpe_t exportdaten[1];
          bool export_p = true;
          exportdaten[0].hersteller = ui->i_hersteller->text() + "\n";
          exportdaten[0].modell = ui->i_typ->text() + "\n";
          exportdaten[0].seriennummer = ui->i_serial->text() + "\n";
          exportdaten[0].kunde = ui->i_kunde->text() + "\n";
          exportdaten[0].projekt = ui->i_projekt->text() + "\n";
          string fileName = QFileDialog::getSaveFileName(this, tr("Exportieren"), QDir::currentPath(), "Export (*.pppex)").toStdString();
          ofstream output_file(fileName, ios::binary);
          output_file.write((char*)&exportdaten, sizeof(exportdaten));
          output_file.close();
      }
      
      

      produziert in meiner Exportdatei ohne Fehlermeldungen bloss binären Müll (nach jeder Ausführung anderen).

      Was mache ich falsch?

      K Offline
      K Offline
      koahnig
      wrote on last edited by koahnig
      #2

      @Thomas-63

      Du schreibst nur die QString-Object-Organisation in deine Datei. Diese Organisation besteht wie bei vielen Objekten, nicht nur bei Qt, aus diversen Pointern, Zählern und Flags, aber beinhaltet nicht die eigentlich Daten. Dies ist der eigentliche Unterschied zwischen festen Datentypen a la double, int, short und Objekten.

      Für das Schreiben in eine Datei musst halt etwas mehr Aufwand betreiben und deine Ausgaberoutine zusammensetzen. Da wäre zum Einen der Ausgabeoperator und etwas weitere Informationen.

      Vote the answer(s) that helped you to solve your issue(s)

      1 Reply Last reply
      1
      • T Offline
        T Offline
        Thomas 63
        wrote on last edited by
        #3

        Ich habe das Ganze jetzt auf string statt QString umgebaut... klappt schon besser

        jsulmJ 1 Reply Last reply
        0
        • T Thomas 63

          Ich habe das Ganze jetzt auf string statt QString umgebaut... klappt schon besser

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @Thomas-63 Der korrekte Weg Datenstrukturen zu schreiben wäre http://doc.qt.io/qt-5/qdatastream.html.

          Wozu public: in einem struct? In einem struct ist alles public.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0

          • Login

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