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. Conversion from QByteArray to int
Forum Updated to NodeBB v4.3 + New Features

Conversion from QByteArray to int

Scheduled Pinned Locked Moved Unsolved General and Desktop
15 Posts 6 Posters 25.3k Views 3 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.
  • M Offline
    M Offline
    mulfycrowh
    wrote on last edited by
    #6

    I tried what you suggested:

    qFromLittleEndian<quint16>(info.data());
    

    I've got the compiler error :

    C2665 'qFromLittleEndian': none of the 2 overloads could convert all the argument types

    Paul ColbyP 1 Reply Last reply
    0
    • M Offline
      M Offline
      mulfycrowh
      wrote on last edited by
      #7

      I mean qint16.
      Same issue

      1 Reply Last reply
      0
      • M mulfycrowh

        I tried what you suggested:

        qFromLittleEndian<quint16>(info.data());
        

        I've got the compiler error :

        C2665 'qFromLittleEndian': none of the 2 overloads could convert all the argument types

        Paul ColbyP Offline
        Paul ColbyP Offline
        Paul Colby
        wrote on last edited by Paul Colby
        #8

        @mulfycrowh said in Conversion from QByteArray to int:

        I've got the compiler error :
        C2665 'qFromLittleEndian': none of the 2 overloads could convert all the argument types

        Ah... from the qFromLittleEndian docs:

        Note: Since Qt 5.7, the type of the src parameter is a void pointer.

        For pre-5.7, you will need to cast to uchar, like:

        int count = qFromLittleEndian<qint16>(reinterpret_cast<const uchar *>(info.data()));
        

        (I just tested that on Qt 5.5.1)

        Cheers.

        1 Reply Last reply
        0
        • M Offline
          M Offline
          mulfycrowh
          wrote on last edited by
          #9

          thanks, it runs perfectly !

          kshegunovK 1 Reply Last reply
          0
          • M mulfycrowh

            thanks, it runs perfectly !

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

            @mulfycrowh
            A two byte sequence is a short, not int. You should use the data stream classes for such deserializations instead of going to type-safety hell:

            QByteArray data; //< This is your data
            
            QDataStream in(data); //< Attach a read-only stream to it
            in.setByteOrder(QDataStream::LittleEndian); //< Set the proper byte order
            
            qint16 result; //< The result you want
            in >> result; //< Just read it from the stream
            

            Read and abide by the Qt Code of Conduct

            S 1 Reply Last reply
            4
            • kshegunovK kshegunov

              @mulfycrowh
              A two byte sequence is a short, not int. You should use the data stream classes for such deserializations instead of going to type-safety hell:

              QByteArray data; //< This is your data
              
              QDataStream in(data); //< Attach a read-only stream to it
              in.setByteOrder(QDataStream::LittleEndian); //< Set the proper byte order
              
              qint16 result; //< The result you want
              in >> result; //< Just read it from the stream
              
              S Offline
              S Offline
              sude
              wrote on last edited by
              #11

              @kshegunov said in Conversion from QByteArray to int:

              QByteArray data; //< This is your data

              QDataStream in(data); //< Attach a read-only stream to it
              in.setByteOrder(QDataStream::LittleEndian); //< Set the proper byte order

              qint16 result; //< The result you want
              in >> result; //< Just read it from the stream

              Hi i want to read more than one number and i can read only first number how can i read all of them plese help me :) !!

              JonBJ 1 Reply Last reply
              0
              • S sude

                @kshegunov said in Conversion from QByteArray to int:

                QByteArray data; //< This is your data

                QDataStream in(data); //< Attach a read-only stream to it
                in.setByteOrder(QDataStream::LittleEndian); //< Set the proper byte order

                qint16 result; //< The result you want
                in >> result; //< Just read it from the stream

                Hi i want to read more than one number and i can read only first number how can i read all of them plese help me :) !!

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

                @sude
                Execute a further in >> something operation to read more data. What else is there to say?

                1 Reply Last reply
                1
                • S Offline
                  S Offline
                  sude
                  wrote on last edited by
                  #13

                  It isnt work, i still read first number of array :(

                  JonBJ 1 Reply Last reply
                  0
                  • S sude

                    It isnt work, i still read first number of array :(

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

                    @sude
                    It does work. So your code is wrong, or your data is not what you expect, or you are not looking at the right thing. Suggest you open your own new topic for this and post your problem/code; this topic is very old.

                    S 1 Reply Last reply
                    1
                    • JonBJ JonB

                      @sude
                      It does work. So your code is wrong, or your data is not what you expect, or you are not looking at the right thing. Suggest you open your own new topic for this and post your problem/code; this topic is very old.

                      S Offline
                      S Offline
                      sude
                      wrote on last edited by
                      #15

                      @JonB OK, thanks a lot. I'm appriciate your answer. I will create new topic. :)

                      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