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. Selecting multiple files for reading
Forum Updated to NodeBB v4.3 + New Features

Selecting multiple files for reading

Scheduled Pinned Locked Moved Unsolved General and Desktop
qt5.12read all files
23 Posts 5 Posters 7.3k 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.
  • Christian EhrlicherC Online
    Christian EhrlicherC Online
    Christian Ehrlicher
    Lifetime Qt Champion
    wrote on last edited by
    #2

    @suslucoder said in Selecting multiple files for reading:

    How can i do it?

    Look at the documentation of QFileDialog::getOpenFileName and you will find a corresponding link to another function the the 'See also' section.

    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
    Visit the Qt Academy at https://academy.qt.io/catalog

    D 1 Reply Last reply
    3
    • Christian EhrlicherC Christian Ehrlicher

      @suslucoder said in Selecting multiple files for reading:

      How can i do it?

      Look at the documentation of QFileDialog::getOpenFileName and you will find a corresponding link to another function the the 'See also' section.

      D Offline
      D Offline
      deleted286
      wrote on last edited by deleted286
      #3

      @Christian-Ehrlicher I convert my code into

      ```
      QStringList fileName;
      
      fileName = QFileDialog::getOpenFileNames(this,
          tr("choose"), "up.sakla", tr("choosen(*.up)"));
      
      
         if (fileName.isEmpty())
            return;
      
      QFile file(fileName);
      file.open(QIODevice::ReadOnly);
      QDataStream in(&file);    // read the data serialized from the file
      QString str;
      qint32 a;
      in >> str >> a;
      

      but it gives me an error on the line, with saying
      no matching constructor for initialization of QFile

      QFile file(fileName);
      
      JonBJ 1 Reply Last reply
      0
      • D deleted286

        @Christian-Ehrlicher I convert my code into

        ```
        QStringList fileName;
        
        fileName = QFileDialog::getOpenFileNames(this,
            tr("choose"), "up.sakla", tr("choosen(*.up)"));
        
        
           if (fileName.isEmpty())
              return;
        
        QFile file(fileName);
        file.open(QIODevice::ReadOnly);
        QDataStream in(&file);    // read the data serialized from the file
        QString str;
        qint32 a;
        in >> str >> a;
        

        but it gives me an error on the line, with saying
        no matching constructor for initialization of QFile

        QFile file(fileName);
        
        JonBJ Online
        JonBJ Online
        JonB
        wrote on last edited by JonB
        #4

        @suslucoder
        Obviously QFile can only handle opening one file at a time! You have to iterate through the list. And please rename your filename to filenames or filenameList for everyone's sanity!

        D 1 Reply Last reply
        3
        • JonBJ JonB

          @suslucoder
          Obviously QFile can only handle opening one file at a time! You have to iterate through the list. And please rename your filename to filenames or filenameList for everyone's sanity!

          D Offline
          D Offline
          deleted286
          wrote on last edited by
          #5

          @JonB said in Selecting multiple files for reading:

          You have to iterate through the list.

          What does it mean?

          JonBJ 1 Reply Last reply
          0
          • D deleted286

            @JonB said in Selecting multiple files for reading:

            You have to iterate through the list.

            What does it mean?

            JonBJ Online
            JonBJ Online
            JonB
            wrote on last edited by JonB
            #6

            @suslucoder
            You receive a list of filenames. You have to go through one-by-one (that's called "iterating" or "iteration"), one file a time, doing whatever you want to do to each one with QFile. I don't honestly see what else you would expect?!

            D 1 Reply Last reply
            3
            • JonBJ JonB

              @suslucoder
              You receive a list of filenames. You have to go through one-by-one (that's called "iterating" or "iteration"), one file a time, doing whatever you want to do to each one with QFile. I don't honestly see what else you would expect?!

              D Offline
              D Offline
              deleted286
              wrote on last edited by
              #7

              @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

              Christian EhrlicherC jsulmJ JonBJ 3 Replies Last reply
              0
              • D deleted286

                @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                Christian EhrlicherC Online
                Christian EhrlicherC Online
                Christian Ehrlicher
                Lifetime Qt Champion
                wrote on last edited by Christian Ehrlicher
                #8

                @suslucoder But even then you should know how to iterate over a container, sorry.

                https://stackoverflow.com/questions/498455/best-way-to-iterate-through-a-container

                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                Visit the Qt Academy at https://academy.qt.io/catalog

                D 1 Reply Last reply
                4
                • D deleted286

                  @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

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

                  @suslucoder Well this is Qt forum, not basic programming one. That's why people can give somewhat harsh replies if you ask about basic programming stuff not related to Qt. This is something you should understand.
                  Iterating trough a list is one of the basic programming concepts. You should do some research for such basic stuff at your own before asking here. For example using Google you can find: https://stackoverflow.com/questions/16825376/qt-foreach-loop-ordering-vs-for-loop-for-qlist

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

                  D 1 Reply Last reply
                  3
                  • D deleted286

                    @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                    JonBJ Online
                    JonBJ Online
                    JonB
                    wrote on last edited by JonB
                    #10

                    @suslucoder said in Selecting multiple files for reading:

                    @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                    I think I explained it very gently & clearly! And told you what you need to do, and explained what the term "iteration" is. So I'm sorry you feel like that, I believe I am one of the people here who is prepared to explain things the most! :) Maybe, if you can, don't take my words as harsh, because they are not intended like that! I'm a pussy cat really :-;

                    D 2 Replies Last reply
                    0
                    • JonBJ JonB

                      @suslucoder said in Selecting multiple files for reading:

                      @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                      I think I explained it very gently & clearly! And told you what you need to do, and explained what the term "iteration" is. So I'm sorry you feel like that, I believe I am one of the people here who is prepared to explain things the most! :) Maybe, if you can, don't take my words as harsh, because they are not intended like that! I'm a pussy cat really :-;

                      D Offline
                      D Offline
                      deleted286
                      wrote on last edited by
                      #11

                      @JonB Yes, after seeing the other answers, I understood that you answered my question very kindly. Thank you for your help

                      1 Reply Last reply
                      1
                      • Christian EhrlicherC Christian Ehrlicher

                        @suslucoder But even then you should know how to iterate over a container, sorry.

                        https://stackoverflow.com/questions/498455/best-way-to-iterate-through-a-container

                        D Offline
                        D Offline
                        deleted286
                        wrote on last edited by
                        #12

                        @Christian-Ehrlicher yes I don't know, is it a shame that I don't know?

                        Christian EhrlicherC 1 Reply Last reply
                        0
                        • jsulmJ jsulm

                          @suslucoder Well this is Qt forum, not basic programming one. That's why people can give somewhat harsh replies if you ask about basic programming stuff not related to Qt. This is something you should understand.
                          Iterating trough a list is one of the basic programming concepts. You should do some research for such basic stuff at your own before asking here. For example using Google you can find: https://stackoverflow.com/questions/16825376/qt-foreach-loop-ordering-vs-for-loop-for-qlist

                          D Offline
                          D Offline
                          deleted286
                          wrote on last edited by
                          #13

                          @jsulm Okey.

                          1 Reply Last reply
                          0
                          • D deleted286

                            @Christian-Ehrlicher yes I don't know, is it a shame that I don't know?

                            Christian EhrlicherC Online
                            Christian EhrlicherC Online
                            Christian Ehrlicher
                            Lifetime Qt Champion
                            wrote on last edited by
                            #14

                            @suslucoder Please start with basic c and c++ - everything else will not work out properly. And I'm pretty sure so will tell you the same.

                            Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                            Visit the Qt Academy at https://academy.qt.io/catalog

                            1 Reply Last reply
                            1
                            • JonBJ JonB

                              @suslucoder said in Selecting multiple files for reading:

                              @JonB If I could think and do all of this at once, I wouldn't ask for help. You don't have to be this hard every time. I'm probably younger than you, and I'm making an effort to learn. It shouldn't be that hard to understand

                              I think I explained it very gently & clearly! And told you what you need to do, and explained what the term "iteration" is. So I'm sorry you feel like that, I believe I am one of the people here who is prepared to explain things the most! :) Maybe, if you can, don't take my words as harsh, because they are not intended like that! I'm a pussy cat really :-;

                              D Offline
                              D Offline
                              deleted286
                              wrote on last edited by
                              #15

                              @JonB I want to ask you something.

                              I did it in the way you said. Now i can select multiple files.
                              After selecting, i want to do some operations. But my code do it just for one file. The other files are not functional.

                              Is there any way to do it like, do these for every different files.
                              I will share you my iteration, i hope it is correct:

                              Q_UNUSED(b);
                              
                                 QStringList fileNames;
                              
                                 fileNames = QFileDialog::getOpenFileNames(nullptr,
                                                                           ("choose"), "up.sakla", ("choosen(*.up)"));
                              
                                for (auto xfile : fileNames)
                                {
                              
                                 QFile file (xfile);
                                 file.open(QIODevice::ReadOnly);
                                 QDataStream in(&file);    // read the data serialized from the file
                                 QString str;
                                 qint32 a;
                                   qDebug() << str << a;
                                 in >> str >> a;
                              
                              jsulmJ 1 Reply Last reply
                              0
                              • D deleted286

                                @JonB I want to ask you something.

                                I did it in the way you said. Now i can select multiple files.
                                After selecting, i want to do some operations. But my code do it just for one file. The other files are not functional.

                                Is there any way to do it like, do these for every different files.
                                I will share you my iteration, i hope it is correct:

                                Q_UNUSED(b);
                                
                                   QStringList fileNames;
                                
                                   fileNames = QFileDialog::getOpenFileNames(nullptr,
                                                                             ("choose"), "up.sakla", ("choosen(*.up)"));
                                
                                  for (auto xfile : fileNames)
                                  {
                                
                                   QFile file (xfile);
                                   file.open(QIODevice::ReadOnly);
                                   QDataStream in(&file);    // read the data serialized from the file
                                   QString str;
                                   qint32 a;
                                     qDebug() << str << a;
                                   in >> str >> a;
                                
                                jsulmJ Offline
                                jsulmJ Offline
                                jsulm
                                Lifetime Qt Champion
                                wrote on last edited by jsulm
                                #16

                                @suslucoder So, did you select more than one file? How many entries do you have in fileNames? Did you use debugger to see what happens?
                                Add

                                for (auto xfile : fileNames)
                                {
                                    qDebug() << xfile;
                                

                                to see what happens. There are so many things you can do to find out what happens...

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

                                D 1 Reply Last reply
                                0
                                • jsulmJ jsulm

                                  @suslucoder So, did you select more than one file? How many entries do you have in fileNames? Did you use debugger to see what happens?
                                  Add

                                  for (auto xfile : fileNames)
                                  {
                                      qDebug() << xfile;
                                  

                                  to see what happens. There are so many things you can do to find out what happens...

                                  D Offline
                                  D Offline
                                  deleted286
                                  wrote on last edited by deleted286
                                  #17

                                  @jsulm said in Selecting multiple files for reading:

                                  qDebug() << xfile;

                                  Yes i select and i can see them. I want to do such a thing:

                                  do some operation
                                  for every file that i select

                                  jsulmJ J.HilkJ 2 Replies Last reply
                                  0
                                  • D deleted286

                                    @jsulm said in Selecting multiple files for reading:

                                    qDebug() << xfile;

                                    Yes i select and i can see them. I want to do such a thing:

                                    do some operation
                                    for every file that i select

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

                                    @suslucoder What do you think you print out to qDebug here:

                                    QString str;
                                    qint32 a;
                                    qDebug() << str << a;
                                    in >> str >> a;
                                    

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

                                    D 1 Reply Last reply
                                    0
                                    • jsulmJ jsulm

                                      @suslucoder What do you think you print out to qDebug here:

                                      QString str;
                                      qint32 a;
                                      qDebug() << str << a;
                                      in >> str >> a;
                                      
                                      D Offline
                                      D Offline
                                      deleted286
                                      wrote on last edited by
                                      #19

                                      @jsulm I wrote it for see the content of my file. Im asking another thing..

                                      jsulmJ 1 Reply Last reply
                                      0
                                      • D deleted286

                                        @jsulm I wrote it for see the content of my file. Im asking another thing..

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

                                        @suslucoder Do you really think the order of the two last lines is correct?

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

                                        D 1 Reply Last reply
                                        1
                                        • D deleted286

                                          @jsulm said in Selecting multiple files for reading:

                                          qDebug() << xfile;

                                          Yes i select and i can see them. I want to do such a thing:

                                          do some operation
                                          for every file that i select

                                          J.HilkJ Online
                                          J.HilkJ Online
                                          J.Hilk
                                          Moderators
                                          wrote on last edited by
                                          #21

                                          @suslucoder said in Selecting multiple files for reading:

                                          I want to do such a thing:
                                          do some operation
                                          for every file that i select

                                          so, what's stoping you ?


                                          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.

                                          D 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