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

C++ Discussion :

la commande system


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 62
    Points : 48
    Points
    48
    Par défaut la commande system
    Bonjour,

    J'ai une question qui me semble assez simple, mais ça fait quelques heures que j'avance difficilement, donc je me permet de poster mon problème.

    Je désire décompresser un fichier, j'utilise alors la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::system("7za e argv[1]");
    Le programme 7zip est bien lancée, mais le fichier est introuvable.
    Je suppose qu'il ne doit pas voir le contenu de la variable argv[1] (un char* en paramètre du programme). J'ai donc essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::system("7za e %s", argv[1]"); //erreur ici par contre
    Et d'autres combinaisons, sans succès.

    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Citation Envoyé par Eames38 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::system("7za e argv[1]");
    Normal tu lui dis de dézipper le fichier qui porte comme nom "argv[1]"
    Citation Envoyé par Eames38 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::system("7za e %s", argv[1]"); //erreur ici par contre
    Où as-tu vu que la fonction system pouvait prendre plus d'un argument ? De plus tu as un nombre impair de guillemets (tu aurais du le repérer directement avec la coloration syntaxique, si ton IDE n'en a pas, change d'IDE !). En somme tu re-ouvre des guillemets à la fin que tu ne ferme pas.

    Citation Envoyé par Eames38 Voir le message
    Et d'autres combinaisons, sans succès.
    Oui enfin le but n'est pas d'essayer des trucs au hasard jusqu'à ce que ça marche (tu risque d'y passer longtemps, sans rien apprendre). Essaye d'avantage de comprendre pourquoi ça ne fonctionne pas au lieu d'essayer des trucs au pif.

    Voilà une façon de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <sstream>
    ...
    std::stringstream stream;
    stream << "7za e " << argv[1];
    std::system(stream.str().c_str());

  3. #3
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    Voilà pourquoi j'évite de poster sur des forums...

    Oui désolé, j'avais mal recopié la ligne. Ensuite je ne fais pas des trucs au pif, j'essaie des syntaxes qui me parraissent logiques ou similaires à d'autres langages (perl, java, ...). Je ne suis pas attardé au point de faire du code au hasard. Je ne suis peut être pas une perle en C++, mais ce n'est pas une raison d'être aussi sarcastique et hautain. Dommage, j'aimai bien l'ambiance de ce forum "d'entraide".

    Finalement, voici ce que j'ai fait après d'autres essais et recherches :
    std::string strfilename=argv[1];
    std::string exe="7za e ";
    std::string cmd=exe+strfilename+" -y";
    std::system(cmd.c_str());

    C'est dans le même esprit que ton conseil, je pense. En tout cas merci.

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

Discussions similaires

  1. Problème avec l'utilisation de la commande system awk
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 05/10/2004, 16h18
  2. [le retour] commande systeme
    Par ronan99999 dans le forum Windows
    Réponses: 2
    Dernier message: 29/07/2004, 10h11
  3. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01
  4. Prblème avec la commande system
    Par AnneOlga dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/03/2004, 16h05
  5. La commande systeme
    Par sunshine33 dans le forum MFC
    Réponses: 11
    Dernier message: 13/01/2004, 11h34

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