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 :

compter et ajouter un valeur


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut compter et ajouter un valeur
    Bonjours a tous je possede sa au depart 101010111110100 et le but ce que je doit mettre un 0 quand il y a cinq 1 d'affiler c'est a dire d'apres l'exemple 1010101111100100

    voila je voi pas comment faire

  2. #2
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    Tu place ta suite de 0 et de 1 dans une AnsiString

    Tu la parcours avec une boucle for, tu teste si c'est egale a 1 si oui tu incremante une variable
    Quand cette variable attein 5 tu remplace le caractére par 0

  3. #3
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 279
    Points : 71
    Points
    71
    Par défaut
    je doit pas le remplacer mais en ajouter un

    look bien exemple

  4. #4
    Responsable Magazine

    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 : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    L'ajout dans un AnsiString est simple avec la méthode Insert

  5. #5
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    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
    28
    29
    30
     
      AnsiString asBuffer = "101010111110100 ";
      int iTaille;
      int iCpt = 0;
     
            iTaille = asBuffer.Length();
     
            for(int i = 1; i<iTaille+1; i++)
            {
                    if(i == 1)
                    {
                            if(asBuffer[i] == '1')
                                    iCpt++;
                    }
                    else
                    {
                           if( (asBuffer[i] == '1' && (asBuffer[i-1] == '1' || iCpt ==0)))
                                    iCpt++;
                            else
                                    iCpt = 0;
                    }
                    if(iCpt == 5)
                    {
                            asBuffer.Insert("0",i+1);
                            iCpt = 0;
                            i--;
                            iTaille ++;
                    }
            }
            Label1->Caption = asBuffer;
    Bon c'est pas optimisé
    Mais jai fais sa vite fait, pour te donner une piste

  6. #6
    Membre chevronné

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    Ca pouvait se rédiger plus simplement (ce que pottiez suggère dans sa réponse) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    AnsiString A = Edit1->Text; //chaine à traiter
    AnsiString S;
    int j;
    for(j = 1; j <= (A.Length()-4); j++)
        {
        S = A.SubString(j, 5);
        if(S == "11111")
            {
            A = A.Insert('0', j+5); 
            j = j + 5;
            }
        }
    //Label2->Caption = A; //Echo du résultat
    A plus !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    Vous vous compliquez la vie

    encore plus simple

    qui dit mieux :

    il fautdrait rajouter l'inclusion de la librairie :
    #include "strutils.hpp"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AnsiString A = Edit1->Text; //chaine à traiter
    Label2->Caption = AnsiReplaceStr(A,"11111","111110");

  8. #8
    Membre chevronné

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 390
    Points : 1 777
    Points
    1 777
    Par défaut
    Salut !

    C'est la solution qui tue !

    Donc chez moi, également comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TReplaceFlags Flags = Flags << rfReplaceAll;
    Label2->Caption = StringReplace(Edit1->Text, //Chaine à traiter
                                    "11111",
                                    "111110",
                                    Flags);
    A plus !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/02/2013, 08h26
  2. Réponses: 5
    Dernier message: 27/09/2005, 17h25
  3. Ajouter un valeur dans une liste modifiable
    Par ancylia dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2005, 12h50
  4. Popup ajoutant une valeur a un champ
    Par kalan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/09/2005, 15h39
  5. [Tableaux]Ajouter des valeurs dans un tableau
    Par Antoine1183 dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 03/04/2005, 13h41

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