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
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    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 éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    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 éprouvé
    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 : 54
    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
    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é ...

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    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
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 23
    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 Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

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

    et penses aux balises CODE, merci d'avance

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    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