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 :

choper les deux derniers caract�res d'une variable


Sujet :

C++Builder

  1. #1
    Membre �clair� Avatar de Mangacker
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    452
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 452
    Par d�faut choper les deux derniers caract�res d'une variable
    hello tout le monde on dirait que �a a foir� quand j'ai envoy� la discussion donc je la recommence.

    est-t'il possible de modifier ce code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    AnsiString mot = "Salut";
    int longueur = mot.Length();
    AnsiString mot2;
     
    mot2 = mot[longueur]
    chope le dernier caract�re

    en �a
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    AnsiString mot = "Salut";
    int longueur = mot.Length();
    AnsiString mot2;
     
    mot2 = mot[1 à 5]
    pour choper les 5 premiers par exemple

    si c'est possible merci de me le dire (on pourrait le rajouter dans la FAQ ici)

    ++ Mangacker

  2. #2
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Pourquoi ne pas utiliser la fonction SubString de l'AnsiString ?

  3. #3
    Membre �clair� Avatar de Mangacker
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    452
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 452
    Par d�faut
    parce que je ne la connais pas tout simplement...

    tu peux me dire comment on l'utilise stp
    ++

  4. #4
    Membre �clair� Avatar de Mangacker
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    452
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 452
    Par d�faut
    c'est bon j'ai trouv�

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    AnsiString mot = "Salut";
    int longueur = mot.Length();
    AnsiString mot2;
     
    mot2 = mot.SubString(longueur-1,longueur)
    comme �a je garde les deux derniers caract�res

    probl�me presque r�solu

    maintenant je dois le incruster � la fin du nom du TLabel que je veux modifier
    par exemple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    lbl_nom + mot2->Caption = mot;

  5. #5
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Je ne comprend pas tr�s bien ce que tu veut la.

    Tu veut modifier le nom du TLabel en lui ajoutant la sous chaine que tu as r�cup�r� auparavant ?

  6. #6
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par d�faut
    j ai une question du meme ordre , en fait j ai une liste de label , par exemple label1 � label5 et je souhaiterais dynamiqement choisir mon label sur lequel je veux realis� une action , comment faire cel� , j ai toujours des erreurs en concatenant mes variables ?

  7. #7
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738

  8. #8
    Membre �clair� Avatar de Mangacker
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    452
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 452
    Par d�faut
    Salut
    Un lien sur une discution similaire
    Citation:
    http://www.developpez.net/forums/sho...d.php?t=423973
    le lien que tu m'a donn� correspond � la premi�re question que j'ai r�solu plus haut

    ce que je veux faire maintenant c'est:
    1 r�cup�rer le nom du bouton sur lequel j'ai cliqu�
    // j'ai cr�� ma fonction
    void __fastcall TForm1::push_button(TObject *Sender)
    {
    // je vais chercher les infos sur la classe TButton
    TButton *bu_Button = dynamic_cast<TButton *>(Sender);

    // je d�clare une variable pour stoquer le nom du bouton
    AnsiString nom, nom2;

    // on stoque le nom du bouton dans cette variable
    nom = bu_Button->Name;

    // et la j'aimerais prendre les 2 derniers caract�res de la variable
    int longueur = nom.Length();
    nom2 = nom.SubString(longueur-1,longueur);

    // et les coller � la fin du nom du label
    // quelque chose du style nom2 �tant les deux derniers caract�res du
    // nom du bouton
    lbl_nom_du_label_ + nom2->Caption = nom;
    }
    le but �tant de modifier uniquement le label qui se termine de la meme mani�re que le nom du bouton

    si vous avec pas compris dites moi je r�expliquerais autrement...

    ++ Mangacker

  9. #9
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Avec FindComponent pour r�cup�rer le Label � l'aide de son nom.
    Si j'ai bien compris le probl�me...

    A plus !

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Je vient de penser � quelque chose !

    En fonction de ce qu'il y a � faire, si chaque bouton est li� � un Label, on peut �ventuellement s'aider du Tag.
    On peut faire ceci (�a ce con�oit bien dans un contexte dynamique) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Bouton->Tag = (int)Label;
    Si les boutons se partagent la m�me �v�nementielle, je ferais comme �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    TButton* Button = (TButton*)Sender;
    TLabel *Label = (TLabel*)Button->Tag;
    Label->Caption...
    Donc selon ce qu'il y a � faire...

    A plus !

  11. #11
    Membre �clair� Avatar de Mangacker
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    452
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 452
    Par d�faut
    ok j'essaye �a se soir et je vous redis

  12. #12
    Membre �clair� Avatar de Mangacker
    Profil pro
    Inscrit en
    D�cembre 2006
    Messages
    452
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 452
    Par d�faut
    yop moi je dis j'essaye mais en fait je vois pas bien comment tu veux que je m'y prenne...

    si chaque bouton est li� � un Label
    les boutons ne sont pas "li�s" aux labels mais ils ont les 2 derniers caract�res en commun

    par exemple
    bu_01 - lbl_01
    bu_salut44 - lbl_salut44

  13. #13
    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
    Bonsoir,

    Surement avec FindComponent, comme le propose sir Henderson; et peut �tre aussi avec une comparaison sur les 'String' repr�sentant les 'Names' des objets.
    -> Une proposition:
    .h:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    private:
    		AnsiString __fastcall FindLabel(String NameButton);
    .cpp

    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
    26
    27
     
    void __fastcall TForm2::Button4004Click(TObject *Sender)
    {
    TLabel *plab = dynamic_cast < TLabel* > (this->FindComponent(FindLabel(	Button4004->Name)));
    if (plab != NULL)
    {
    plab->Caption = "réussi";
    }
    }
    //---------------------------------------------------------------------------
    AnsiString __fastcall TForm2::FindLabel(String NameButton)
    {
    String result = "";
    for (int i = 0;0 < this->ComponentCount-1 ; i ++)
    {
    	if (this->Components[i]->Name.SubString(this->Components[i]->Name.Length()-3, 4) == NameButton.SubString(NameButton.Length()-3, 4))
    	{
    		if (this->Components[i]->ClassNameIs("TLabel"))
    		{
    		 result =  this->Components[i]->Name;
    		 break;
    		}
    	}
    }
    return result;
    }
    //----------------------------------------------------------------------------
    A retravailler en fonction des besoins ... et corriger si besoin bien sur.
    En esp�rant t'aider,
    @+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Effacer les X dernier caract�re d'une cha�ne
    Par Altrensa dans le forum Excel
    R�ponses: 4
    Dernier message: 17/07/2007, 11h03
  2. Garder que les 10 premiers caract�re d'une variable
    Par dembroski dans le forum Langage
    R�ponses: 2
    Dernier message: 27/06/2007, 16h18
  3. R�ponses: 15
    Dernier message: 28/02/2007, 10h00
  4. Extraire les deux dernieres lettres d'une cellule
    Par SybVicious dans le forum Macros et VBA Excel
    R�ponses: 8
    Dernier message: 03/09/2006, 11h54
  5. R�ponses: 2
    Dernier message: 14/06/2006, 09h30

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