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 :

recherche un caratère dans un tableau de chaines de caratères


Sujet :

C++Builder

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut recherche un caratère dans un tableau de chaines de caratères
    Bonjour,
    Je cherche à savoir comment l'on peut faire pour tester le contenu d'une cellule d'un StringGrid.
    Je m'explique, mon tableau contient différents champs dont une colonne avec des adresses de messagerie. Je voudrais savoir comment faire pour que je puisse savoir si le contenue de la cellule qui est sélectionnée est une adresse mail ou non... Pour information j'utilise un bouton pour faire mon envoi de mail, donc j'ai besoin de faire ce test uniquement lors de l'envoi d'un mail.
    J'ai pensé utilisé une boucle for comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    bool TForm_Tab_Clients::Recherche_Caractere(AnsiString Chaine, AnsiString Caractere_recherche)
    {
      for(int i =0; i<StrLen(Chaine);i++)
      {
        if(Chaine[i] == Caractere_recherche) return true;
      }
    }
    mais je n'arrive pas à utilisé la fonction StrLen avec un AnsiString... alors je suis un peut perdu...

    Merci par avance
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  2. #2
    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
    Utilise tout simplement Chaine.length()
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 126
    Points : 149
    Points
    149
    Par défaut
    Bonjour,

    Tout d'abord pour la longueur:
    Un AnsiString a accès à une méthode Length
    Pour la recherche d'un caractère, tu peux utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Chaine.AnsiPos("@"); 
    // qui retourne la position du premier "@" trouvé, et 0 sinon.
    A+
    Agamitsudo.
    Un ordinateur fait au bas mot 1 million d'opérations à la seconde, mais il n'a que ça à penser, aussi. (brèves de comptoirs, JM.Gourio)


  4. #4
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    En effet ce simple code suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    bool Chaine_trouvee = false;
    bool TForm_Tab_Clients::Recherche_Caractere(AnsiString Chaine, AnsiString Caractere_recherche)
    {
      if(Chaine.AnsiPos(Caractere_recherche)) return Chaine_trouvee = true;
      else return Chaine_trouvee = false;
    }
    Merci encore.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  5. #5
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    J'aimerais adapter ce code pour pouvoir rechercher un caractère dans tout mon tableau, ou plutôt plusieurs caractères.
    Exemple si je cherche exe dans mon champs de recherche de mon tableau je voudrai pouvoir trouver exemple...
    peut on faire quelque chose de ce type?
    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
    int TForm_Tab_Clients::Recherche(AnsiString Element_recherche)
    {
     for (int i = 0;i < StringGrid->ColCount ;i++)
     {
      for (int j = 0; j<StringGrid->RowCount ;j++)
      {
       Recherche_Caractere(StringGrid->Cells[i][j],Element_recherche);
       if(Chaine_trouvee)
       {
           return Num_colonne = i;
       }
      }
     }
    }
    //-----------------------------------------------------------------------------
     
    bool TForm_Tab_Clients::Recherche_Caractere(AnsiString Chaine, AnsiString Caractere_recherche)
    {
      if(Chaine.AnsiPos(Caractere_recherche)) return Chaine_trouvee = true; 
      else return Chaine_trouvee = false;
    }
    Merci par avance
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  6. #6
    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
    Dans ta fonction recherché tu tes trompé dans ton if :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int TForm_Tab_Clients::Recherche(AnsiString Element_recherche)
    {
     for (int i = 0;i < StringGrid->ColCount ;i++)
     {
      for (int j = 0; j<StringGrid->RowCount ;j++)
      {
       if(Recherche_Caractere(StringGrid->Cells[i][j],Element_recherche))
       {
           return Num_colonne = i;
       }
      }
     }
    }
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  7. #7
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Merci
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

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

Discussions similaires

  1. Rechercher indice dans un tableau de chaine de caractère
    Par bsangoku dans le forum Débuter
    Réponses: 4
    Dernier message: 23/12/2009, 11h50
  2. Réponses: 2
    Dernier message: 02/03/2007, 13h58
  3. Rechercher une valeur dans un tableau
    Par pafi76 dans le forum Access
    Réponses: 2
    Dernier message: 29/06/2006, 14h23
  4. Faire une recherche de texte dans un tableau de variable
    Par alexxx69 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/02/2006, 13h12
  5. Réponses: 1
    Dernier message: 08/03/2004, 11h35

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