IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Problème lors du lancement d'un programme avec QProcess


Sujet :

Qt

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 33
    Points
    33
    Par défaut Problème lors du lancement d'un programme avec QProcess
    Bonjour,

    dans le cadre d'un stage, je suis amené à développer une interface graphique qui doit gérer l'ouverture de plusieurs types de fichiers.

    Mon application gère déja l'ouverture des .xx, je veux ouvrir des .yy et il existe une application Y en C qui transforme les .yy en .xx, je décide donc d'appeler cette application dans mon programme principale. Cependant Y à besoin du chemin absolu du .yy, j'ai donc choisi d'écrire dans un fichier .txt avec mon programme principale le chemin du fichier à ouvrir et de lire ce .txt dans mon programme Y qui ensuite ouvre le .yy, le transforme en .xx et l'écrit dans le .txt.

    Pour lancer Y à partir de mon programme principale j'ai éssayé execute(), start(), startDetached() de QProcess et le résultat est toujours le même, Y ne détecte rien dans le fichier .txt alors que celui ci contient bien le chemin du fichier à ouvrir.

    Lorsque j'effectue ces opérations manuellement cela fonctionne : j'utilise mon programme principale pour écrire le nom du fichier à ouvrir dans le .txt, je lance Y qui lit dans mon .txt, ferme le .txt lit le fichier.yy, ouvre le .txt en ecriture et ecrit le .yy en .xx dans le .txt.
    Ensuite le programme principale traite sans soucis le .txt (.xx).

    J'éspere que c'est compréhensible, si ça ne l'est pas n'hésitez pas à me demander d'autres informations.

    Merci d'avance pour les réponses.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Je pense que c'est parce que le chemin passé ( celui pour le fichier ) n'est pas bon, car il part de l'emplacement de l'application Qt ( ou du projet lorsque sous QtCreator ou autre ).
    Un chemin absolu, réglera le problème. ( Car j'imagine que vous utilisé un chemin relatif )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    tout d'abord, merci de prendre du temps pour examiner mon problème, mais j'utilise déja les chemins absolus.
    Lorsque le programme Y se lance je lui demande d'afficher ce qu'il lit dans le .txt, dans le cas où il est lancé avec QProcess, il ne lit rien. Pourtant je ferme bien le fichier .txt dans X avant de lancer Y.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Est ce que vous êtes sur que Y démarre correctement ( si vous avez la possibilité d'ajouter un message en entré dans le main de Y, je vous le conseille, pour être archi sur qu'il démarre )
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Points : 969
    Points
    969
    Par défaut
    Comment renseigne tu le chemin du fichier .txt à ton programme Y ? Est ce codé en dur , ou est ce un argument ?

    Si c'est un argument, tu a sans doute un problème de séparateur ("/" au lieu de "\", voire "\" au lieu de "\\" ).

    G.
    Un problème avec Qt ? Vous trouverez votre réponse ici : http://doc.trolltech.com/4.6/overviews.html
    En français (traduction réalisée par l'équipe Qt de DVP) : http://qt.developpez.com/doc/4.6/vues-d-ensemble/

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    @LittleWhite : je suis sûr que Y démarre correctement avec startDetached() de QProcess une console s'ouvre pour afficher les messages de Y et effectivement Y démarre bien.

    @Gullish : les chemins étaient codés en dûr dans Y : "C:/.../temp.txt", mais je suis en train d'essayer de me passer du .txt pour passer les chemins. L'avantage du fichier .txt est la possibilité de pouvoir passer un chemin relatif comportant des espaces : ex : "C:/Documents and settings/temp.txt", ce qui avec les aguments est plus compliqué. Mais je vais utiliser les arguments pour voir. Au pire j'indiquerais dans la doc un endroit où déposer les .yy à l'utilisateur (un chemin absolu sans espaces de préference )

  7. #7
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    En ce qui concerne les chemins avec des espaces, tu peux normalement les passer en argument de ton programme sans problème. La fonction start prend une QStringList pour la liste des arguments, chaque élément de la liste sera automatiquement mis entre guillement si c'est nécessaire.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    Merci à tous d'avoir pris la peine de m'aider.

    J'ai trouvé une solution cet après midi, je redirige le stdout de Y vers mon .txt avec setStandardOutputFile() de QProcess et je lance Y avec start() en lui passant en argument le chemin du .yy, enfin j'attends la fin de l'execution avec waitForFinished()

    encore merci à tous, ça m'a aidé d'avoir des avis exterieurs. Si un modo passe dans le coin il peut fermer le topic.

  9. #9
    Membre émérite
    Avatar de ymoreau
    Homme Profil pro
    Ingénieur étude et développement
    Inscrit en
    Septembre 2005
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur étude et développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 154
    Points : 2 834
    Points
    2 834
    Par défaut
    Les modos ne ferment pas les topics, par contre tu peux le basculer en "résolu" pour indiquer que le problème est clos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème lors du lancement d'un programme
    Par Nanonnien dans le forum NetBeans
    Réponses: 3
    Dernier message: 05/03/2014, 18h34
  2. [DW2] Problème lors du lancement de Dreamweaver 2
    Par angefatal dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 31/01/2008, 11h08
  3. Réponses: 3
    Dernier message: 06/06/2007, 11h46
  4. Problème lors du lancement sur une autre machine
    Par poussinphp dans le forum Visual C++
    Réponses: 4
    Dernier message: 01/05/2007, 14h25
  5. Lancement d'un programme avec la fonction "at"
    Par Coori dans le forum Administration système
    Réponses: 2
    Dernier message: 16/05/2006, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo