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++Builder Discussion :

Ajout de caractères dans un AnsiString


Sujet :

C++Builder

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Ajout de caractères dans un AnsiString
    Bonjour,

    Pour m'initier à C++ Builder, je commence à faire une petite application qui sert bêtement à envoyer des messages par net send.
    Après avoir galéré à trouver comment faire pour envoyer une commande, j'ai voulu automatiser un peu la chose.
    J'ai donc un bouton dans un fomulaire, ainsi qu'une zone d'édition TEdit.
    je voudrais la chose suivante :
    je rentre une phrase dans la zone d'édition : "bla bla bla", ensuite je clique sur le bouton, et le message par à mon collègue, dont l'IP est prédéfinie.

    La commande shell est la suivante dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     void __fastcall TFichePrincipale::Button1Click(TObject *Sender)
    {
    ShellExecute(NULL,
                      NULL,
                      "net",
                      "send IPCOLLEGUE blablabla",     // plus tard, ce texte sera la var CommandeFinale
                      "C:\WINNT\system32",
                      SW_SHOWNORMAL);
    }
    J'ai fais le test suivant (concluant) en écrivant dans la zone d'édition : "send IPCOLLEGUE bla bla bla" (je l'ecris sans les guillemets)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     void __fastcall TFichePrincipale::Button1Click(TObject *Sender)
    {
    ShellExecute(NULL,
                      NULL,
                      "net",
                      TEdit--Text.c_Str(),
                      "C:\WINNT\system32",
                      SW_SHOWNORMAL);
    }
    On remarque que c'est casse-pied de devoir toujours réécrire "send IPCOLLEGUE" et ensuite le message.
    J'ai donc crée un nouveau AnsiString CommandeFinale dans lequel je veux encapsuler le message.

    Je veux donc la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     void __fastcall TFichePrincipale::Button1Click(TObject *Sender)
    {
    CommandeFinale = "send IPCOLLEGUE" + (AnsiString) TEdit--Text.c_Str();
    }
    J'ai pas d'erreurs à la compilation mais mon collegue ne reçoit rien.
    Comment faire poru ajouter des caractères à une chaine de caractères ?

  2. #2
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Tu n'a pas besoin de convertir ton TEdit->Text puisque c'est déjà un AnsiString

    Ansi la création de ton CommandeFinale doit être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CommandeFinale = "send IPCOLLEGUE" + TEdit->Text;
    Et après dans ta commande ShellExecute, tu fait ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ShellExecute(NULL,
    NULL,
    "net",
    CommandeFinale.c_str(),
    "C:\WINNT\system32",
    SW_SHOWNORMAL);
    Là je pense que cela devrait fonctionné

  3. #3
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    Essaies qqchose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
     
    void __fastcall TFichePrincipale::Button1Click(TObject *Sender)
    {
    String S = "send IPCOLLEGUE" + TEdit->Text;
    ShellExecute(NULL,
    NULL,
    "net",
    S.c_Str(),
    "C:\WINNT\system32",
    SW_SHOWNORMAL);
     
    }
    En espérant t'aider,
    @ +

    EDIT : grillé ...
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    Points : 26
    Points
    26
    Par défaut AnsiString
    La première solution de kurul1 ne marche pas, j'ai la fenêtre de commande qui s'ouvre avec rien dedans ...
    Je vais essayer en debuggant pour voir si la chaine est bien initialisée

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    Points : 26
    Points
    26
    Par défaut l'envoi fonctionne
    Dans CommandeFinale = "send IPCOLLEGUE" + TEdit->Text; il fallait bien que je rajoute l'espace manquant dans "send IPCOLLEGUE " + TEdit->Text
    Merci de votre aide !

  6. #6
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    ???

    et penses aux balises CODE, merci d'avance
    Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
    _ _ _ _ _ _ _ _ _

    La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
    _ _ _ _ _ _ _ _ _

    Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres

  7. #7
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Citation Envoyé par moudel
    Dans CommandeFinale = "send IPCOLLEGUE" + TEdit->Text; il fallait bien que je rajoute l'espace manquant dans "send IPCOLLEGUE " + TEdit->Text
    Merci de votre aide !
    Excuse-moi, j'ai oublié l'espace

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

Discussions similaires

  1. Ajouter des caractéres dans une textbox
    Par l3xki dans le forum Windows Forms
    Réponses: 5
    Dernier message: 22/02/2008, 14h18
  2. ajoute des caractère dans un string
    Par TrollTop dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 23/10/2007, 17h22
  3. Ajouter des caractères dans un string
    Par Janny dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/06/2007, 12h45
  4. [Système] Ajouter un caractère dans requete SQL
    Par Dsphinx dans le forum Langage
    Réponses: 1
    Dernier message: 08/06/2007, 11h21
  5. Réponses: 3
    Dernier message: 13/03/2007, 13h40

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