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 :

Utilisez des variables dans une commande system()


Sujet :

C++

  1. #1
    Invité1
    Invité(e)
    Par défaut Utilisez des variables dans une commande system()
    Bonjour,

    Je suis tout nouveau dans la programmation. Je n'ai que des base en C et vraiment très peu en C++. Cependant vous lire sur ce forum est une vraie mine d'or en information et c'est grâce à ca que j'avance pas à pas

    Alors voilà mon problème je voudrais exécuter un programme console avec des arguments stockés dans des variables (des directions et nom de fichier recuperés dans des zones de texte).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AnsiString Var1 = txt1->Text;
    AnsiString Var2 = txt2->Text;
    AnsiString Var3 = txt3->Text;
    AnsiString Var4 = txt4->Text;
    system("monprogramme '%s' %s %s %s",Var1,Var2,Var3,Var4);
    Avant d'essayer de compiler ça je me doutais que ca planterais. Tout ça pour vous dire que je n'ai en fait aucune idée de comment proceder.

    Si quelqu'un pouvait m'eclairer de ses lumières sur ce problème tout en gardant à l'esprit le newbie que je suis ce serait fort aimable.

    Sinon je cherche comment implementer un bouton Parcourir avec evidement la popup qui va avec mais je ne l'ai pas trouvé dans les outils d'interface de C++ Builder 6.

    Merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    salut,

    La commande system demande un pointeur sur une chaine de caractères C style...

    J'en profite pour attirer ton attention sur le fait que le type AnsiString est, sauf erreur, propre à Borland, et n'est -toujours sauf erreur - pas portable

    L'idée est donc de commencer par concaténer tes chaines sous une forme proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AnsiString complete="monprograme "+txt1->Text+ " " +txt2->Text+" "+
                         txt3->Text+" "+txt4->Text;
    et de passer la convertion de cette chaine (complete) en chaine C style à la commande system sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system(complete.c_str());
    De manière portable, autant utiliser les std::string sous une forme proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <iostream>
    #include <string>
    int main()
    {
        std::string chaine="dir /s";
        system(chaine.c_str());
        	return 0;
    }
    meme si, ici, la chaine est écrite "en dur"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Invité1
    Invité(e)
    Par défaut
    Merci beaucoup pour ta reponse rapide.
    Je vais essayer d'exploiter ca et je reviendrais vous dire le résultat.

    EDIT : Merci ca fonctionne à merveille. En revanche la version portable n'a pas l'air de vouloir des paramètres du type "+txt1->Text+" dans "std::string chaine="";"

    Sinon dans Borland je ne trouve pas le bouton dans les outils d'interface pour Parcourir un dossier et recuperer un nom de fichier et son emplacement.

    Merci mille fois
    Dernière modification par Invité1 ; 05/01/2007 à 23h31.

Discussions similaires

  1. Inclure des variables dans une commande CURL
    Par fredour dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/05/2014, 09h26
  2. Des variables dans une iframe.
    Par kult dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/02/2006, 16h29
  3. Réponses: 7
    Dernier message: 23/01/2006, 11h53
  4. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50
  5. Concaténation d'une variable dans une commande
    Par dreamanoir dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/03/2005, 17h08

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