Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Converting 4 Byte array into float using little endianness
Forum Updated to NodeBB v4.3 + New Features

Converting 4 Byte array into float using little endianness

Scheduled Pinned Locked Moved Solved Mobile and Embedded
31 Posts 6 Posters 9.0k Views 2 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.
  • V vicksoccer

    @jsulm I have opened original file with texteditor(notepad++) there I can see data line by line..
    But after reading file with above qt syntax the resulted QString or Qbytearray does not contain "\n" character at end of the line.
    I have tried with readline() also but I am getting truncated string at wrong location ideally it comes at end line..
    here my data is (opened in notpad++)
    0_1545123421025_3.PNG
    this is what I am getting in QString after readall() 0_1545123560600_4.PNG
    here I am expecting "\n" character after index of 540..

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

    @vicksoccer Can you show exact code you use to read the file?

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

    V 1 Reply Last reply
    0
    • jsulmJ jsulm

      @vicksoccer Can you show exact code you use to read the file?

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

      @jsulm here my code is for reading file

      QFile slcFile(fileName); //path of the file
      if(!slcFile.open(QIODevice::ReadOnly | QIODevice::Text))
      {
      showStatus("Unable to open the file\n"); //MessageBOx
      return;
      }
      QTextStream in(&slcFile);
      QString slcText = in.readAll(); //Reading data as string

      aha_1980A 1 Reply Last reply
      0
      • V vicksoccer

        @jsulm here my code is for reading file

        QFile slcFile(fileName); //path of the file
        if(!slcFile.open(QIODevice::ReadOnly | QIODevice::Text))
        {
        showStatus("Unable to open the file\n"); //MessageBOx
        return;
        }
        QTextStream in(&slcFile);
        QString slcText = in.readAll(); //Reading data as string

        aha_1980A Offline
        aha_1980A Offline
        aha_1980
        Lifetime Qt Champion
        wrote on last edited by
        #20

        @vicksoccer And do you have an example for such a file?

        Also, wasn't you question about binary float representation? How does that fit with a text file?

        Qt has to stay free or it will die.

        V 1 Reply Last reply
        0
        • V vicksoccer

          @jsulm I have opened original file with texteditor(notepad++) there I can see data line by line..
          But after reading file with above qt syntax the resulted QString or Qbytearray does not contain "\n" character at end of the line.
          I have tried with readline() also but I am getting truncated string at wrong location ideally it comes at end line..
          here my data is (opened in notpad++)
          0_1545123421025_3.PNG
          this is what I am getting in QString after readall() 0_1545123560600_4.PNG
          here I am expecting "\n" character after index of 540..

          kshegunovK Offline
          kshegunovK Offline
          kshegunov
          Moderators
          wrote on last edited by kshegunov
          #21

          @vicksoccer said in Converting 4 Byte array into float using little endianness:

          here I am expecting "\n" character after index of 540

          Why? From what I could see from your screenshots this is a binary file. The fact that you can see the text in it in your notepad++ doesn't make it a text file. If you don't trust me open an executable in notepad++ and you're going to see the static strings from your program (in one way or another).

          Read and abide by the Qt Code of Conduct

          1 Reply Last reply
          4
          • aha_1980A aha_1980

            @vicksoccer And do you have an example for such a file?

            Also, wasn't you question about binary float representation? How does that fit with a text file?

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

            @aha_1980 Previously I was stucked at conversion of 4 QBytearray into float thats why I am posted with this..I am truely new in
            this but now I am getting to know that my conversion is messed up due to skiping "\n" character at end line in receiving data as QString.
            here is sample .slc file
            https://www.dropbox.com/s/5bez93mdjr64v8x/open_display_SLC.zip

            aha_1980A 1 Reply Last reply
            0
            • V vicksoccer

              @aha_1980 Previously I was stucked at conversion of 4 QBytearray into float thats why I am posted with this..I am truely new in
              this but now I am getting to know that my conversion is messed up due to skiping "\n" character at end line in receiving data as QString.
              here is sample .slc file
              https://www.dropbox.com/s/5bez93mdjr64v8x/open_display_SLC.zip

              aha_1980A Offline
              aha_1980A Offline
              aha_1980
              Lifetime Qt Champion
              wrote on last edited by
              #23

              @vicksoccer By looking at your sample_ring2.slc, I doubt that is a text file. It looks like pure binary data for me.

              Qt has to stay free or it will die.

              V 2 Replies Last reply
              1
              • aha_1980A aha_1980

                @vicksoccer By looking at your sample_ring2.slc, I doubt that is a text file. It looks like pure binary data for me.

                V Offline
                V Offline
                vicksoccer
                wrote on last edited by
                #24

                @aha_1980 I have tried to read this file with

                @
                QFile slcFile(fileName); //path of the file
                if(!slcFile.open(QIODevice::ReadOnly | QIODevice::Text))
                {
                showStatus("Unable to open the file\n"); //MessageBOx
                return;
                }
                QByteArray slcText = slcFile.readAll();
                @
                But still missing "\n" in QBytearray in required index.
                I have take 4 data from QBytearray and convert into float value in loop so due missing "\n" index my conversion is messed up after performing some loop and does not getting expected float value.

                kshegunovK 1 Reply Last reply
                0
                • V vicksoccer

                  @aha_1980 I have tried to read this file with

                  @
                  QFile slcFile(fileName); //path of the file
                  if(!slcFile.open(QIODevice::ReadOnly | QIODevice::Text))
                  {
                  showStatus("Unable to open the file\n"); //MessageBOx
                  return;
                  }
                  QByteArray slcText = slcFile.readAll();
                  @
                  But still missing "\n" in QBytearray in required index.
                  I have take 4 data from QBytearray and convert into float value in loop so due missing "\n" index my conversion is messed up after performing some loop and does not getting expected float value.

                  kshegunovK Offline
                  kshegunovK Offline
                  kshegunov
                  Moderators
                  wrote on last edited by
                  #25

                  @vicksoccer said in Converting 4 Byte array into float using little endianness:

                  But still missing "\n" in QBytearray in required index.

                  There's no such requirement when working with binary files. This is relevant only for text files, which you don't have in this case.

                  Read and abide by the Qt Code of Conduct

                  V 1 Reply Last reply
                  1
                  • kshegunovK kshegunov

                    @vicksoccer said in Converting 4 Byte array into float using little endianness:

                    But still missing "\n" in QBytearray in required index.

                    There's no such requirement when working with binary files. This is relevant only for text files, which you don't have in this case.

                    V Offline
                    V Offline
                    vicksoccer
                    wrote on last edited by
                    #26

                    @kshegunov Thanks for your reply..
                    Then how I can read this file can you just show me bunch of codes.. that will be nice

                    kshegunovK 1 Reply Last reply
                    0
                    • V vicksoccer

                      @kshegunov Thanks for your reply..
                      Then how I can read this file can you just show me bunch of codes.. that will be nice

                      kshegunovK Offline
                      kshegunovK Offline
                      kshegunov
                      Moderators
                      wrote on last edited by
                      #27

                      @vicksoccer said in Converting 4 Byte array into float using little endianness:

                      can you just show me bunch of codes

                      I can't because each binary file has its own format and is different in that regard. You should read on the file format's specification to understand what is written how before proceeding with code.

                      Read and abide by the Qt Code of Conduct

                      1 Reply Last reply
                      1
                      • aha_1980A aha_1980

                        @vicksoccer By looking at your sample_ring2.slc, I doubt that is a text file. It looks like pure binary data for me.

                        V Offline
                        V Offline
                        vicksoccer
                        wrote on last edited by
                        #28

                        @aha_1980 @Qt-Champions-2016 @Moderators
                        Please anyone can help me to read this sample_ring2.slc file I am trying to decode this slc file in qt

                        jsulmJ S 2 Replies Last reply
                        0
                        • V vicksoccer

                          @aha_1980 @Qt-Champions-2016 @Moderators
                          Please anyone can help me to read this sample_ring2.slc file I am trying to decode this slc file in qt

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

                          @vicksoccer Please do not contact directly Qt-Champions and Moderators! If somebody has an answer he/she will write it. People here help using their own time.
                          Do you have a specification for this file format as @kshegunov already asked?

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

                          1 Reply Last reply
                          3
                          • V vicksoccer

                            @aha_1980 @Qt-Champions-2016 @Moderators
                            Please anyone can help me to read this sample_ring2.slc file I am trying to decode this slc file in qt

                            S Offline
                            S Offline
                            Stoyan
                            wrote on last edited by Stoyan
                            #30

                            @vicksoccer
                            I saw that this SLC-file is created by JewelCAD. With an easy search I found SLC file format description.
                            If you want to read just header of the file it is a lot easier - use QIODevice::readLine to read the header in QByteArray. Then extract the part after "-EXTENTS", remove spaces, use split(',') or parse array manually to extract every number and convert it to float with toFloat().
                            If you want to read and decode entire file, you have to study the whole description.

                            1 Reply Last reply
                            2
                            • V Offline
                              V Offline
                              vicksoccer
                              wrote on last edited by
                              #31

                              Thank you all for support!!!
                              This was first and nice experience to post on forum..Sorry for all above confusion..
                              Finally my issue get solved,
                              @
                              QFile slcFile(fileName); //path of the file
                              if(!slcFile.open(QIODevice::ReadOnly))
                              {
                              showStatus("Unable to open the file\n"); //MessageBOx
                              return;
                              }
                              QString slcText = slcFile.readAll();

                              here I only removed QIODevice::Text in file opening, now I am getting "\r" character at required location in resulted QString, So after conversion in loop getting expected float values..

                              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