Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to create .bin file?
Forum Update on Tuesday, May 27th 2025

How to create .bin file?

Scheduled Pinned Locked Moved Solved General and Desktop
22 Posts 4 Posters 8.5k 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.
  • V Vijaykarthikeyan

    @JonB Yes.you are correct. Writing into other directory it works. I wonder Why?

    Now, If I want to run my software in any other target system, it is not sure that those systems have same directory which I have coded in my file? What is the solution?

    J.HilkJ Offline
    J.HilkJ Offline
    J.Hilk
    Moderators
    wrote on last edited by J.Hilk
    #5

    @Vijaykarthikeyan said in How to create .bin file?:

    @JonB Yes.you are correct. Writing into other directory it works. I wonder Why?

    @JonB said in How to create .bin file?:

    they are read-only

    @Vijaykarthikeyan said in How to create .bin file?:

    Now, If I want to run my software in any other target system, it is not sure that those systems have same directory which I have coded in my file? What is the solution?

    https://doc.qt.io/qt-6/qstandardpaths.html


    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


    Q: What's that?
    A: It's blue light.
    Q: What does it do?
    A: It turns blue.

    V 1 Reply Last reply
    1
    • V Vijaykarthikeyan

      @JonB Yes.you are correct. Writing into other directory it works. I wonder Why?

      Now, If I want to run my software in any other target system, it is not sure that those systems have same directory which I have coded in my file? What is the solution?

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

      @Vijaykarthikeyan said in How to create .bin file?:

      I wonder Why?

      qrc file content is built into the executable - so, you cannot write into it.
      "it is not sure that those systems have same directory which I have coded in my file?" - solution is to use folders which the platform where your app is running provides for application data. See https://doc.qt.io/qt-6/qstandardpaths.html + QStandardPaths::DocumentsLocation or QStandardPaths::AppDataLocation

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

      1 Reply Last reply
      0
      • V Vijaykarthikeyan

        @JonB Yes.you are correct. Writing into other directory it works. I wonder Why?

        Now, If I want to run my software in any other target system, it is not sure that those systems have same directory which I have coded in my file? What is the solution?

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by JonB
        #7

        @Vijaykarthikeyan said in How to create .bin file?:

        I wonder Why?

        Have you read up what Qt resource files are and where they are stored? They are embedded into your executable. They can be read at runtime, but you cannot write to them!

        A log file will need to be a real, external file in your file system. You can use QStandardPaths to help generate a path to a suitable directory, in a cross-platform manner.

        V 1 Reply Last reply
        0
        • JonBJ JonB

          @Vijaykarthikeyan
          In addition to @jsulm, in your existing code one cannot write to a qrc: resource file --- they are read-only, for obvious reasons. A "log file" will need to be external.

          And if you are under Windows any .txt or .csv files need to be opened with the QIODeviceBase::Text flag. A .bin file presumably will not want that.

          V Offline
          V Offline
          Vijaykarthikeyan
          wrote on last edited by
          #8

          @JonB I want to save the data which is coming from and writing via UDP. It's a string format data separated by comma. it should be running continously, with the help of Timer. Below is the complete code. Ignore the declaration and definition. I have declared/defined all the members and functions in header and other files.

          #include "ui_mainwindow.h"
          #include "mainwindow.h"
          #include <QDataStream>
          #include <QTimer>
          #include <QDebug>
          #include <QElapsedTimer>
          #include <QFile>
          #include <QDateTime>
          #include <QFile>
          using namespace std;
          
          MainWindow::MainWindow(QWidget *parent)
              : QMainWindow(parent)
              , ui(new Ui::MainWindow)
                  {
                      ui->setupUi(this);
                      writeToLogFile();
                      UDP_DATA="Some comma separated datas";
              send_socket = new QUdpSocket();
              arduino_available=true;
              QTimer* timer = new QTimer(this);
              connect(timer, &QTimer::timeout, this, &MainWindow::updateCommunication);
              // Start the timer
              timer->start(1);
                  }
          
          
          
          void MainWindow::updateCommunication()
                              {
                                  sendDatagram();
                                  processResponse();
                              }
          
          void MainWindow::sendDatagram()
                              {
                                  QHostAddress receiverAddress("some ip address");
          
                                  if(UDP_DATA==UDP_DATA2)
                                  {
                                      send_socket->writeDatagram(UDP_DATA, receiverAddress, receiverPort);
                                      qDebug()<<UDP_DATA;
                                      date = QDateTime::currentDateTime();
                                      formattedTime = date.toString("dd.MM.yyyy,hh:mm:ss,");
                                      formattedTimeMsg = formattedTime.toLocal8Bit();
                                      writeToLogFile();
                                  }
                                  else
                                  {
          
                                  }
          }
          
          void MainWindow::processResponse()
                              {
                                  if (send_socket->state() == QUdpSocket::BoundState)
                                  {
                                  while (send_socket->hasPendingDatagrams())
                                      {
                                          QHostAddress senderAddress;
                                          quint16 senderPort;
                                          datagram.resize(send_socket->pendingDatagramSize());
                                          send_socket->readDatagram(datagram.data(), datagram.size(), &senderAddress, &senderPort);
                                          emit data_received(datagram);
                                          qDebug()<<datagram;
                                      }
                                  }
          
                              }
          
          void MainWindow::set_data(QByteArray to_data)
                              {
                                      UDP_DATA=to_data;
                                      UDP_DATA2=to_data;
                              }
          
          
          QByteArray MainWindow::get_datagram()
                                  {
                                  return datagram;
          }
          
          
          void MainWindow::writeToLogFile()
          {
              QFile File("file:///C:/new_soft_log_files/logfile.txt");
              QFile File2("file:///C:/new_soft_log_files/logfile.csv");
          
              if(File.open(QIODevice::Truncate | QIODevice::ReadWrite))
              {
                                      QTextStream stream(&File);
          
                                      stream<<"Date,Time,OUTPUT,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,AHRS INPUT\n";
                                      stream<<formattedTime;
                                      stream<<datagram+"\t";
                                      stream<<UDP_DATA+"\n";
              }
              if(File2.open(QIODevice::Truncate | QIODevice::ReadWrite))
              {
                                      QTextStream stream2(&File2);
                                      stream2<<"Date,Time,OUTPUT,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,AHRS INPUT\n";
                                      stream2<<formattedTime;
                                      stream2<<datagram+"\t";
                                      stream2<<UDP_DATA+"\n";
              }
              File.close();
              File2.close();
          }
          
          JonBJ 1 Reply Last reply
          0
          • V Vijaykarthikeyan

            @JonB I want to save the data which is coming from and writing via UDP. It's a string format data separated by comma. it should be running continously, with the help of Timer. Below is the complete code. Ignore the declaration and definition. I have declared/defined all the members and functions in header and other files.

            #include "ui_mainwindow.h"
            #include "mainwindow.h"
            #include <QDataStream>
            #include <QTimer>
            #include <QDebug>
            #include <QElapsedTimer>
            #include <QFile>
            #include <QDateTime>
            #include <QFile>
            using namespace std;
            
            MainWindow::MainWindow(QWidget *parent)
                : QMainWindow(parent)
                , ui(new Ui::MainWindow)
                    {
                        ui->setupUi(this);
                        writeToLogFile();
                        UDP_DATA="Some comma separated datas";
                send_socket = new QUdpSocket();
                arduino_available=true;
                QTimer* timer = new QTimer(this);
                connect(timer, &QTimer::timeout, this, &MainWindow::updateCommunication);
                // Start the timer
                timer->start(1);
                    }
            
            
            
            void MainWindow::updateCommunication()
                                {
                                    sendDatagram();
                                    processResponse();
                                }
            
            void MainWindow::sendDatagram()
                                {
                                    QHostAddress receiverAddress("some ip address");
            
                                    if(UDP_DATA==UDP_DATA2)
                                    {
                                        send_socket->writeDatagram(UDP_DATA, receiverAddress, receiverPort);
                                        qDebug()<<UDP_DATA;
                                        date = QDateTime::currentDateTime();
                                        formattedTime = date.toString("dd.MM.yyyy,hh:mm:ss,");
                                        formattedTimeMsg = formattedTime.toLocal8Bit();
                                        writeToLogFile();
                                    }
                                    else
                                    {
            
                                    }
            }
            
            void MainWindow::processResponse()
                                {
                                    if (send_socket->state() == QUdpSocket::BoundState)
                                    {
                                    while (send_socket->hasPendingDatagrams())
                                        {
                                            QHostAddress senderAddress;
                                            quint16 senderPort;
                                            datagram.resize(send_socket->pendingDatagramSize());
                                            send_socket->readDatagram(datagram.data(), datagram.size(), &senderAddress, &senderPort);
                                            emit data_received(datagram);
                                            qDebug()<<datagram;
                                        }
                                    }
            
                                }
            
            void MainWindow::set_data(QByteArray to_data)
                                {
                                        UDP_DATA=to_data;
                                        UDP_DATA2=to_data;
                                }
            
            
            QByteArray MainWindow::get_datagram()
                                    {
                                    return datagram;
            }
            
            
            void MainWindow::writeToLogFile()
            {
                QFile File("file:///C:/new_soft_log_files/logfile.txt");
                QFile File2("file:///C:/new_soft_log_files/logfile.csv");
            
                if(File.open(QIODevice::Truncate | QIODevice::ReadWrite))
                {
                                        QTextStream stream(&File);
            
                                        stream<<"Date,Time,OUTPUT,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,AHRS INPUT\n";
                                        stream<<formattedTime;
                                        stream<<datagram+"\t";
                                        stream<<UDP_DATA+"\n";
                }
                if(File2.open(QIODevice::Truncate | QIODevice::ReadWrite))
                {
                                        QTextStream stream2(&File2);
                                        stream2<<"Date,Time,OUTPUT,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,\t,AHRS INPUT\n";
                                        stream2<<formattedTime;
                                        stream2<<datagram+"\t";
                                        stream2<<UDP_DATA+"\n";
                }
                File.close();
                File2.close();
            }
            
            JonBJ Offline
            JonBJ Offline
            JonB
            wrote on last edited by
            #9

            @Vijaykarthikeyan
            I don't know whether there is a question here? You have not heeded the suggestion to use QStandardPaths to generate the file paths, and you have ignored that you need the Text flag as you are under Windows so the files generated will not be "proper" for Windows.

            V 1 Reply Last reply
            0
            • JonBJ JonB

              @Vijaykarthikeyan
              I don't know whether there is a question here? You have not heeded the suggestion to use QStandardPaths to generate the file paths, and you have ignored that you need the Text flag as you are under Windows so the files generated will not be "proper" for Windows.

              V Offline
              V Offline
              Vijaykarthikeyan
              wrote on last edited by
              #10

              @JonB No..just know I've gone through the Qstandard page. For the question about the data format which @jsulm asked, I've replied with the full code. need to respect his time and words. that's why.. And thank you for your suggestion that qrc is read only and directed me to go for QStandardPath.

              jsulmJ 1 Reply Last reply
              0
              • JonBJ JonB

                @Vijaykarthikeyan said in How to create .bin file?:

                I wonder Why?

                Have you read up what Qt resource files are and where they are stored? They are embedded into your executable. They can be read at runtime, but you cannot write to them!

                A log file will need to be a real, external file in your file system. You can use QStandardPaths to help generate a path to a suitable directory, in a cross-platform manner.

                V Offline
                V Offline
                Vijaykarthikeyan
                wrote on last edited by
                #11

                @JonB Is that .xml created automatically in executable? Because,in exe folder, there are only file formats like .dat and .pak?

                JonBJ 1 Reply Last reply
                0
                • V Vijaykarthikeyan

                  @JonB Is that .xml created automatically in executable? Because,in exe folder, there are only file formats like .dat and .pak?

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by JonB
                  #12

                  @Vijaykarthikeyan
                  What .xml file? There is no mention of any in your code. Nor do I know what .dat or .pak files are doing in your "exe folder".

                  V 1 Reply Last reply
                  0
                  • V Vijaykarthikeyan

                    @JonB No..just know I've gone through the Qstandard page. For the question about the data format which @jsulm asked, I've replied with the full code. need to respect his time and words. that's why.. And thank you for your suggestion that qrc is read only and directed me to go for QStandardPath.

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

                    @Vijaykarthikeyan said in How to create .bin file?:

                    I've replied with the full code

                    It would be good if you would answer the questions. Also, in the code you posted I don't see anything related to writing .bin file, so no idea how that should help us...

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

                    V 1 Reply Last reply
                    1
                    • JonBJ JonB

                      @Vijaykarthikeyan
                      What .xml file? There is no mention of any in your code. Nor do I know what .dat or .pak files are doing in your "exe folder".

                      V Offline
                      V Offline
                      Vijaykarthikeyan
                      wrote on last edited by
                      #14

                      @JonB You have said to look-through Qt Resource System.In that they have mentioned .qrc file which is the .xml format where all the resource files located. That's why I have asked about it.

                      jsulmJ 1 Reply Last reply
                      0
                      • V Vijaykarthikeyan

                        @JonB You have said to look-through Qt Resource System.In that they have mentioned .qrc file which is the .xml format where all the resource files located. That's why I have asked about it.

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

                        @Vijaykarthikeyan said in How to create .bin file?:

                        Qt Resource System.In that they have mentioned .qrc file which is the .xml format where all the resource files located.

                        The resource file itself is in XML format. But there will be no such file in the build folder. Resource files are built INTO the executable (I already mentioned that in this thread). So, don't know why you expect to see any .xml files in build folder...

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

                        1 Reply Last reply
                        1
                        • jsulmJ jsulm

                          @Vijaykarthikeyan said in How to create .bin file?:

                          I've replied with the full code

                          It would be good if you would answer the questions. Also, in the code you posted I don't see anything related to writing .bin file, so no idea how that should help us...

                          V Offline
                          V Offline
                          Vijaykarthikeyan
                          wrote on last edited by
                          #16

                          @jsulm That's where I'm getting struck. I don't know how to create it. Then,you have asked what format. I have mentioned that it's a string format

                          jsulmJ JonBJ 2 Replies Last reply
                          0
                          • V Vijaykarthikeyan

                            @jsulm That's where I'm getting struck. I don't know how to create it. Then,you have asked what format. I have mentioned that it's a string format

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

                            @Vijaykarthikeyan said in How to create .bin file?:

                            I have mentioned that it's a string format

                            So, basically a text file?
                            Then what exactly is the problem?

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

                            V 1 Reply Last reply
                            0
                            • V Vijaykarthikeyan

                              @jsulm That's where I'm getting struck. I don't know how to create it. Then,you have asked what format. I have mentioned that it's a string format

                              JonBJ Offline
                              JonBJ Offline
                              JonB
                              wrote on last edited by
                              #18

                              @Vijaykarthikeyan
                              It is hard to understand what your question or issue is. But again a reminder: if you are wanting to write to a log file at runtime you won't be able to use a qrc: for this, so why are we even discussing such a file?

                              V 2 Replies Last reply
                              1
                              • J.HilkJ J.Hilk

                                @Vijaykarthikeyan said in How to create .bin file?:

                                @JonB Yes.you are correct. Writing into other directory it works. I wonder Why?

                                @JonB said in How to create .bin file?:

                                they are read-only

                                @Vijaykarthikeyan said in How to create .bin file?:

                                Now, If I want to run my software in any other target system, it is not sure that those systems have same directory which I have coded in my file? What is the solution?

                                https://doc.qt.io/qt-6/qstandardpaths.html

                                V Offline
                                V Offline
                                Vijaykarthikeyan
                                wrote on last edited by
                                #19

                                @J-Hilk Thank you so much. Yes, it is possible through QStandardPath .

                                1 Reply Last reply
                                1
                                • JonBJ JonB

                                  @Vijaykarthikeyan
                                  It is hard to understand what your question or issue is. But again a reminder: if you are wanting to write to a log file at runtime you won't be able to use a qrc: for this, so why are we even discussing such a file?

                                  V Offline
                                  V Offline
                                  Vijaykarthikeyan
                                  wrote on last edited by
                                  #20

                                  @JonB I understand why it can't be? Again thank you for suggesting another problem which is writing a file through QStandarPath.

                                  1 Reply Last reply
                                  0
                                  • jsulmJ jsulm

                                    @Vijaykarthikeyan said in How to create .bin file?:

                                    I have mentioned that it's a string format

                                    So, basically a text file?
                                    Then what exactly is the problem?

                                    V Offline
                                    V Offline
                                    Vijaykarthikeyan
                                    wrote on last edited by
                                    #21

                                    @jsulm I have written into the .txt format and .csv format and I had a doubt about creating .bin format. Then you all cleared my doubt it's worth nothing written into bin file. So, the problem solved and my doubt is cleared now

                                    1 Reply Last reply
                                    0
                                    • V Vijaykarthikeyan has marked this topic as solved on
                                    • JonBJ JonB

                                      @Vijaykarthikeyan
                                      It is hard to understand what your question or issue is. But again a reminder: if you are wanting to write to a log file at runtime you won't be able to use a qrc: for this, so why are we even discussing such a file?

                                      V Offline
                                      V Offline
                                      Vijaykarthikeyan
                                      wrote on last edited by
                                      #22

                                      @JonB Thank you.. I followed QStandardPath and tested in different target systems. It is able to create and write into the files independent of directories

                                      1 Reply Last reply
                                      1

                                      • Login

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