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

Discussion :

utilisation de QProcess

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 49
    Par défaut utilisation de QProcess
    Bonjour,

    Je souhaite utilise la méthode QProcess::execute() dans l'espoir de pouvoir lancer un programme externe sans qu'une console s'ouvre ce qui se passe quand j'utilise la fonction system() de windows.

    Ceci fonctionne très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QString l_command = "svn ls --verbose " + p_pathDirectory + " > temp.txt";
    system( l_command.toAscii().data() );
    mais pas celà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QString l_command = "svn ls --verbose " + p_pathDirectory + " > temp.txt";
    int l_err = QProcess::execute(l_command);
    l_err = 1

    Est-ce que quelqu'un saurait m'aider à faire fonctionner ce petit bout de code s'il vous plait ?

    Merci d'avance

    Madeline

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut,
    le problème viens de ta redirection de flux. Avec QProcess, "> temp.txt" est envoyé en paramètre de svn qui ne le comprend pas.

    Pour y remédier, il suffit de rediriger la sortie standard (et d'erreur?) à l'aide de QProcess
    Voici un peu plus d'explication
    http://qt.developpez.com/faq/?page=q...ation_Qprocess

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 49
    Par défaut
    Merci !

    J'aurais du regarder un peu plus les méthodes disponibles de Qprocess !

    Cela dit, ça ne fonctionne toujours pas !

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    QString l_command = "C:/Program Files/Subversion/bin/svn ls --verbose " + p_pathDirectory  ;
    QProcess l_process;	
    l_process.setStandardOutputFile("temp.txt");	l_process.execute(l_command);
    Le fichier temp.txt n'est toujours pas crée ...

    Est-ce que tu vois pourquoi ? La seule diff que je note avec les exemples trouvés sur Google est le fait que je ne passe pas de parent au QProcess. Tu crois que ça peut être le problème ?

    Merci

    Madeline

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 49
    Par défaut
    A noter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int err = l_process.execute(l_command);
    qDebug() << err;
    err = 0

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Madeline Voir le message
    La seule diff que je note avec les exemples trouvés sur Google est le fait que je ne passe pas de parent au QProcess. Tu crois que ça peut être le problème ?
    Non, ceci est pour la gestion de mémoire quand tu fait un pointeur.

    essaie de mettre un path absolu pour ton log pour voir. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_process.setStandardOutputFile("c:/temp.txt");
    Mais j'ai l'impression que c'est l'utilisation de execute qui ne permet pas cela.
    execute est une fonction static qui redirige les sortie vers les sortie de ton application et ne semble donc pas prendre en compte la redirection que tu lui as demandé.
    http://qt.developpez.com/doc/4.5/qprocess/#execute

    A mon avis, il faut mieux utiliser la fonction start. Dans l'exemple de cette QR
    http://qt.developpez.com/faq/?page=q...ation_Qprocess
    je montre comment on utilise start.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 49
    Par défaut
    Merci !

    C'était bien ça le problème!
    Voici le code qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	QString l_command = "svn ls --verbose " + p_pathDirectory ;
    	QProcess l_process;
    	l_process.setStandardOutputFile("temp.txt");
    	l_process.start(l_command);
    	l_process.waitForFinished();
    Merci encore !

    Madeline

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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