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 :

lire les mots d'une StringList


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut lire les mots d'une StringList
    bonjour
    j'ai un petit problème de lecture dans une Stringlist,
    en fait, j'ai une phrase genre: 1000 /// sensory perception of sound /// infered from electronic annotation.

    cette phrase est dans ma string list, est ce qu'il y a moyen de tockeniser les mots de cette liste c'est a dire les découpet la stringlist mot par mot.

    merci d'avance

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Regarde du coté des méthode Pos(), SubString(), etc...
    En les combinant et les adaptant à ton problème, tu devrait t'en sortir.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    merci Sat82 pour ta réponse

    mais peux tu s'il te plait etre plus précis sachant que j'ai pas utilisé la StringList aupart-avant.

    merci pour ton aide.

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Voilà un bout de code pour te donner une idée (il n'est pas optimisé, et je l'ai fais un peu "à l'arrache", donc sert toi en pour te donné une idée, puis pour le refaire à ta sauce :

    Regarde l'aide (F1) pour les fonction Pos() et SubString(), tu verra ce n'est pas très compliqué à comprendre.

    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
      //list est ta TStringList qui contient des phrases ;
     
      AnsiString s1, s2, s3 ;
      AnsiString tmp = list->Strings[i] ; // récupération de la ligne 'i' de ta StringList
    //"1000 /// sensory perception of sound /// infered from electronic annotation"
     
      AnsiString separator = " /// " ;  // affectation du séparateur
      int sepaLength = separator.Length() ; //longueur (en caractère) du séparateur
     
      int pos2, pos ;
      pos  = tmp.Pos( separator ); //recherche de la position du premier séparateur dans la chaine
      s1   = tmp.SubString(1,pos); // recupération de la sous-chaine allant du début à pos
      pos2 = tmp.SubString(pos+sepaLength,tmp.Length()).Pos( separator );
      s2   = tmp.SubString(pos+sepaLength, pos2-pos+sepaLength );
      s3   = tmp.SubString(pos2+sepaLength+pos+s1.Length()-1, tmp.Length() );
     
    //Le chaîne s1, s2, et s3 contiennent respectivement les 3 chaîne de ton message
      ShowMessage( s1 );
      ShowMessage( s2 );
      ShowMessage( s3 );

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    Une petite fonction que j'ai écrite il y a quelque temps et qui doit correspondre à ce que tu cherches :

    st : la string à découper
    paramslist : la stringlist contenat les éléments découpée
    separateur : le(s) caractère(s) séparateur(s)

    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
     
     
    // extration des paramètres
    void extractionParams (AnsiString st, TStringList *paramsList, AnsiString separateur)
    {
       int x;
       paramsList->Clear();
       st = st.Trim();
       while ((x=st.Pos(separateur)) > 0 )
       {
         paramsList->Add(st.SubString(1,x-1).Trim());
         st.Delete(1,x);
         st = st.TrimLeft();
       }
       paramsList->Add(st);
    }
    pour appeler cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
              AnsiString text= "1000 /// sensory perception of sound /// infered from electronic annotation";
     
              TStringList *paramsList = new TStringList;
              extractionParams (text, paramsList, " ");
     
              // utilisation de paramsList
              // .................
     
              delete paramsList;

Discussions similaires

  1. Compter les mots d'une phrase
    Par miss64 dans le forum Langage
    Réponses: 12
    Dernier message: 07/01/2017, 10h57
  2. Comment lire les propriétés d'une imprimante ?
    Par zidenne dans le forum Langage
    Réponses: 18
    Dernier message: 06/08/2010, 11h26
  3. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  4. lire les indexes dans une stringGrid
    Par zidenne dans le forum Composants VCL
    Réponses: 1
    Dernier message: 01/12/2005, 15h15
  5. [VB+Lotus Notes] Lire les données d'une DB Lotus
    Par kenn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/08/2005, 15h21

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