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. Only when I start from QtCreator program works fine / read write to xml
Forum Updated to NodeBB v4.3 + New Features

Only when I start from QtCreator program works fine / read write to xml

Scheduled Pinned Locked Moved Solved General and Desktop
13 Posts 4 Posters 1.9k 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.
  • Pablo J. RoginaP Offline
    Pablo J. RoginaP Offline
    Pablo J. Rogina
    wrote on last edited by
    #2

    @Allman-2 you should provide more information regarding your environment, i.e. different folder when you run from IDE than when you double click your executable? In any case, when opening the XML file for reading, you should check for any errors, which may give you a hint of why is not working.

    Upvote the answer(s) that helped you solve the issue
    Use "Topic Tools" button to mark your post as Solved
    Add screenshots via postimage.org
    Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

    Allman 2A 1 Reply Last reply
    1
    • Pablo J. RoginaP Pablo J. Rogina

      @Allman-2 you should provide more information regarding your environment, i.e. different folder when you run from IDE than when you double click your executable? In any case, when opening the XML file for reading, you should check for any errors, which may give you a hint of why is not working.

      Allman 2A Offline
      Allman 2A Offline
      Allman 2
      wrote on last edited by
      #3

      @Pablo-J.-Rogina
      Hey Pablo,
      no it's anytime the same xml-file. and with qt got no error.

      1 Reply Last reply
      0
      • mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #4

        Hi
        To run it outside Creator, it should have its needed SO files with it.
        try LDD on the ".exe" and see if any So files are missing.

        1 Reply Last reply
        1
        • Pablo J. RoginaP Offline
          Pablo J. RoginaP Offline
          Pablo J. Rogina
          wrote on last edited by
          #5

          @Allman-2 again, are you implementing some error checking when opening the file? QFile::errorString()

              ...
              QFile xmlFile("/path/to/XMLfile");
          
              if (!xmlFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
                  qDebug() << xmlFile.errorString();
              } else {
                  qDebug() << "It worked";
              }
              ...
          

          and given no file exists for instance, you'll have this handy error message:

          "No such file or directory"
          

          Upvote the answer(s) that helped you solve the issue
          Use "Topic Tools" button to mark your post as Solved
          Add screenshots via postimage.org
          Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

          1 Reply Last reply
          2
          • Allman 2A Offline
            Allman 2A Offline
            Allman 2
            wrote on last edited by
            #6

            Hey,
            so in my pic I attached, you can see that my time stamp of the main.xml is more newer than other filer, thats cause I wrote after creating to it.
            And Pablo yes I'm using that snippet code you pronounced from the qt-api.

            Well I' m thinking it is something with the read and write rights, I will check it out.
            THX

            1 Reply Last reply
            0
            • Allman 2A Offline
              Allman 2A Offline
              Allman 2
              wrote on last edited by Allman 2
              #7

              so to get the correct path ->
              QString current = QDir::currentPath();
              QStringList url = current.split(QFileInfo(QCoreApplication::applicationFilePath()).fileName());
              xmlFile = new QFile(url.at(0)+QString("main.xml"));

              you can find the entire code here:
              here: https://github.com/lustigepepe/TinWeb.git

              in the xmllibrary.cpp line 9 is the reading from the main.xml

              THX

              1 Reply Last reply
              0
              • Pablo J. RoginaP Offline
                Pablo J. RoginaP Offline
                Pablo J. Rogina
                wrote on last edited by
                #8

                @Allman-2 it looks like you solved your issue. If so, please don't forget to mark your post as such. Thank you.

                Upvote the answer(s) that helped you solve the issue
                Use "Topic Tools" button to mark your post as Solved
                Add screenshots via postimage.org
                Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                Allman 2A 2 Replies Last reply
                0
                • Pablo J. RoginaP Pablo J. Rogina

                  @Allman-2 it looks like you solved your issue. If so, please don't forget to mark your post as such. Thank you.

                  Allman 2A Offline
                  Allman 2A Offline
                  Allman 2
                  wrote on last edited by
                  #9

                  @Pablo-J.-Rogina

                  no, it still doesn't work the permission rights a correct and the code is still the same.

                  1 Reply Last reply
                  0
                  • Pablo J. RoginaP Pablo J. Rogina

                    @Allman-2 it looks like you solved your issue. If so, please don't forget to mark your post as such. Thank you.

                    Allman 2A Offline
                    Allman 2A Offline
                    Allman 2
                    wrote on last edited by
                    #10

                    @Pablo-J.-Rogina

                    here ::
                    this code works fine within creator but not when I double-click it.
                    QString current = QDir::currentPath();
                    QStringList url = current.split(QFileInfo(QCoreApplication::applicationFilePath()).fileName());
                    xmlFile = new QFile(url.at(0)+QString("main.xml"));

                    do you have any idea why?

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #11

                      Hi,

                      Did you check the content of your QStringList before trying to build the file path ?

                      In any case, expecting the file to be writable when it's located in the same folder as your application is not a good idea. On Windows for example, the Program Files folder is read only. The same goes for *nix system's /bin, /usr/bin and /usr/local/bin.

                      You should rather have a default file embedded within your application that you copy over to best suited place given by QStandardPaths::writableLocation.

                      By the way, you are using pointers way to much in your code and not in the best way. For example, there's no need to allocate QString on the heap. When you need to pass one around, use const references.

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      Allman 2A 1 Reply Last reply
                      1
                      • SGaistS SGaist

                        Hi,

                        Did you check the content of your QStringList before trying to build the file path ?

                        In any case, expecting the file to be writable when it's located in the same folder as your application is not a good idea. On Windows for example, the Program Files folder is read only. The same goes for *nix system's /bin, /usr/bin and /usr/local/bin.

                        You should rather have a default file embedded within your application that you copy over to best suited place given by QStandardPaths::writableLocation.

                        By the way, you are using pointers way to much in your code and not in the best way. For example, there's no need to allocate QString on the heap. When you need to pass one around, use const references.

                        Allman 2A Offline
                        Allman 2A Offline
                        Allman 2
                        wrote on last edited by
                        #12

                        @SGaist said in Only when I start from QtCreator program works fine / read write to xml:

                        Program Files
                        mhhh
                        yeahr everyone is scared about pointers but when this variable can be empty, I think
                        pointer is good solution. Ok the heap is more slowly, your right.

                        1 Reply Last reply
                        0
                        • Allman 2A Offline
                          Allman 2A Offline
                          Allman 2
                          wrote on last edited by Allman 2
                          #13

                          @SGaist
                          @Pablo-J-Rogina
                          Well a Big big thanks to all, the solution is :: QCoreApplication::applicationDirPath()
                          instead using QDir::currentPath() !!!
                          AND SGaist thx for the tip with the write location, now it's changed!
                          Big Cheers.!!

                          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