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

Bibliothèques Discussion :

charger fichier de commande gnuplot


Sujet :

Bibliothèques

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut charger fichier de commande gnuplot
    Bonjour à tous,

    je m'adresse à vous car j'ai un problème avec l'ouverture d'un fichier de commande gnuplot (.gnu) en c++ !

    J'arrive à lancer gnuplot avec cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("start gnuplot\\gnuplot.exe");
    (j'ai mis gnuplot dans un sous répertoire de mon programme)

    mais je n'arrive pas du tout à lire un fichier de commande ou même à exécuter la moindre commande avec gnuplot depuis mon programme.

    J'ai bien vu ce lien :

    http://www.developpez.net/forums/sho...d.php?t=529575

    La personne est sous windows comme moi et arrive à lancer son fichier de commande avec cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("start \"C:\\Mondossierprogramme\\gnuplot\\bin\\wgnuplot.exe\" fonc.gnu");
    Mais cette commande ne marche pas pour moi

    Si quelqu'un pouvait me sauver la vie

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    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 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Bonjour,

    system("start \"C:\\Mondossierprogramme\\gnuplot\\bin\\wgnuplot.exe\" fonc.gnu");
    Essayez avec un chemin absolu pour le fichier de commandes.

    Sinon, le problème, c'est d'indiquer le bon chemin, en sachant à partir de quel dossier on 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.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    Bonjour et merci de votre réponse,

    en travaillant directement dans l'invité de commande (pour trouver la ligne de code à mettre dans system) j'arrive à lancer gnuplot (en absolu) mais je n'arrive pas à lancer de fichier de commande ! Quand je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start C:\\\"Program Files"\\gnuplot\\bin\\gnuplot.exe
    gnuplot se lance mais en tapant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start C:\\\"Program Files"\\gnuplot\\bin\\gnuplot.exe fonction.gnu
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    start C:\\\"Program Files"\\gnuplot\\bin\\gnuplot.exe load "fonction.gnu"
    rien ne se passe il n'y a même pas d'erreur !

    Je précise que dans mon fichier fonction.gnu j'ai écris :

    plot sin(x)
    pause -1

    c'est juste pour faire le test.

    Savez vous ce qui cloche ?

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    J'ai trouvé

    ce n'était pas bien compliqué mais ça m'a pris énormément de temps

    En fait l'invité de commande Windows s'ouvre dans le répertoire de mon programme et comme j'ai mis gnuplot dans un sous dossier nommé gnuplot (oui je sais j'ai beaucoup d'imagination ) il faut que je change de répertoire avant d'appeler la console, j'utilise donc :

    ATTENTION : chdir("nom_du_sous_repertoire") est une fonction de dir.h donc ne pas oublier :

    Une fois dans mon sous répertoire avec la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("start gnuplot.exe fonction.gnu");
    je lance gnuplot et lui demande par la même occasion de lire le fichier de commande fonction.gnu

    ATTENTION : dans mon cas je fais en sorte que mon programme écrive le fichier fonction.gnu dans le même répertoire que gnuplot.exe c'est ce qui rend les choses plus facile.

    Voila, voila

    En tout cas merci à toi LittleWhite pour ton temps

    D'ailleurs j'aurais encore une petite question, lors de l'exécution de mon programme je demande à gnuplot d'enregistrer l'image du graphe dans un fichier, je n'ai donc pas besoin de l'ouverture "visuelle" de l'invité de commande. Ma question est donc y a il un moyen pour exécuter tout cela sans que la fenêtre noire de l'invité de commande s'ouvre ?

    Merci d'avance

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    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 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Pour l'enregistrement unique, il suffit de définir la sortir avec un
    set term png
    par exemple (pour du PNG) afin de lui dire d'écrire un fichier PNG.
    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.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    Oui c'est ce que je fais !

    Voici ce que mon programme exécute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    chdir("gnuplot");
        system("start gnuplot.exe fonction2.gnu");
        system("exit");
        chdir("..");
    et voici ce qui est dans mon fichier fonction2.gnu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    plot sin(x)
    set term gif
    set output "graphe.gif"
    replot
    Le truc c'est que du coup j'ai quand même une fenêtre noir qui s'ouvre en haut à gauche pendant une demi seconde Est ce qu'il y aurait un moyen de "la dissimuler" pour ne pas la voir à l’exécution ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    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 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Je crois que la cause est le lancement du programme avec start. Mais je n'en suis pas très sur.
    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.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    Et sais tu si il existe un moyen de lancer le programme sans le start ?

    Et sinon j'ai encore une autre difficultés

    j'ai une fonction qui vise à écrire dans fichier .gnu mes commandes gnuplot qui permettent d'enregistrer comme une image le résultat, une fois ces résultats calculé j'ouvre une fenêtre (je suis avec Qt) pour afficher cette image.

    Le truc c'est que si je clique sur le bouton qui lance ma fonction la fenêtre qui s'ouvre n'affiche rien et on me dit qu'il y a un problème avec setGeometry.

    Et si je reclique ça marche

    Il y a un truc qui m'échappe

    Voici ma fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    void FenPrincipale::ouvrirFenGraphe()
    {
        QFile gnu("gnuplot\\fonction.gnu");
     
        if (!gnu.open(QIODevice::WriteOnly | QIODevice::Text))
            return;
     
        QTextStream gnuFlux(&gnu);
     
        gnuFlux << "plot tan(x)" << endl;
        gnuFlux << "set term png" << endl;
        gnuFlux << "set output \"graphe.png\" " << endl;
        gnuFlux << "replot" << endl;
     
        gnu.close();
     
        chdir("gnuplot");
        system("start gnuplot.exe fonction.gnu");
        system("exit");
        chdir("..");
     
        FenGraphe graphe;
     
        graphe.exec();
    }
    et voici ma fenêtre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    FenGraphe::FenGraphe()
    {
        setWindowIcon(QIcon("Atlantic.png"));
     
        setWindowTitle("Résultats");
     
        QLabel  *label_img  = new QLabel(this);
        QPixmap *pixmap_img = new QPixmap("gnuplot\\graphe.png");
             label_img->setPixmap(*pixmap_img);
     
        QGridLayout *gridLayout = new QGridLayout;
        gridLayout->addWidget(label_img);
        setLayout(gridLayout);
    }

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    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 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    Pour votre dernier problème, je vous conseille d'ouvrir la question dans le sous forum Qt de Developpez.com, car elle n'est pas vraiment lié au sujet actuel.

    Sinon, non je ne sais pas faire sans le start et je ne suis pas sur que ce soit possible. Par contre, peut être qu'il y a une option à la commande start pour ne pas afficher de fenêtre.
    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.

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 113
    Points : 50
    Points
    50
    Par défaut
    Salut à tous, j'espère que vous avez tous passé un très bon week-end,

    Je reviens vers vous afin de vous donner la réponse à l'une de mes questions !

    Comme l'a dit LittleWhite la commande system("start ...") implique l'ouverture de l'invité de commande, afin de lancer une application sans que la console s'ouvre il faut utiliser la commande WinExec et lui donner le paramètre que l'on souhaite, dans notre cas cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WinExec("gnuplot.exe fonction.gnu", SW_HIDE);
    Voila, voila je passe le sujet en résolu , pour mon autre question je vais ouvrir un sujet dans le sous forum Qt.

    Encore merci à toi LittleWhite

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

Discussions similaires

  1. [OS WINDOWS] Fichier de commande
    Par guenfood dans le forum Windows
    Réponses: 1
    Dernier message: 01/06/2006, 21h39
  2. charger fichier au demarrage SQL server
    Par skunkies dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/11/2005, 12h26
  3. renomage d'un fichier avec commande cmd
    Par timsah dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 27/10/2005, 18h03
  4. Charger fichiers au format milkshape
    Par ryu20 dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2005, 18h26
  5. Extraire des lignes d'un fichier en commande bash
    Par newnew dans le forum Linux
    Réponses: 3
    Dernier message: 27/07/2004, 16h22

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