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 :

Extraire un segment d'une string


Sujet :

C++Builder

  1. #1
    Membre chevronn�

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par d�faut Extraire un segment d'une string
    Bonjour,

    J'ai une question toute b�te, mais je me demande s'il existe une fonction ad hoc pour extraire un champ depuis un AnsiString.

    Je m'explique. J'ai une cha�ne de caract�re:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    AnsiString fields="champ0;champ1;champ2;champ3;champ4";
    Et j'aimerais pouvoir extraire rapidement un champ par son index (NB: je ne connais ni la longueur de chaque champs ni leur nombre). Il me faudrait une fonction qui me retourne le i�me champ. Par exemple:

    Extract(fields,1,';') retourne "champ1"
    Extract(fields,3,';') retourne "champ3"

    Ca existe ou il faut que je l'�crive moi-m�me? C'est trivial, je le sais, mais je l'utilise souvent alors je n'ai pas envie de la remettre dans toutes mes classes...

    Merci

  2. #2
    Membre chevronn�


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855

  3. #3
    Membre chevronn�

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par d�faut
    Super, merci beaucoup! Je ne l'avais pas trouv� car je cherchais des "champs" et non pas des "mots"

    Sinon, j'avais aussi fait une fonction...

    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
    //! Extract a subfield
    AnsiString __fastcall TFrameReqFilter::Extract(const AnsiString& source,int index,
                                                   char sep,AnsiString def) const {
     
      // Look for index_th separator
      char* start=source.c_str();
      while ((index>0)&&(*start!='\0')) {
        if (*start==sep) --index;
        ++start;
      }
     
      // End of string ?
      if (*start=='\0') return def;
     
      // Start of field was found, look for its end
      char* end=start+1;
      while ((*end!='\0')&&(*end!=sep)) ++end;
     
      // End of field is found, extract the field
      return source.SubString(start-source.c_str()+1,end-start);
     
    }

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

Discussions similaires

  1. extraire des nombres d'une string
    Par neonico dans le forum C#
    R�ponses: 9
    Dernier message: 06/03/2014, 09h58
  2. Extraire les donn�es d'une string
    Par bastian06n dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 09/08/2010, 15h16
  3. R�ponses: 4
    Dernier message: 11/05/2006, 14h41
  4. [C#] Comment extraire les parties d'une string ?
    Par mrpowerboy dans le forum C#
    R�ponses: 3
    Dernier message: 21/02/2006, 09h10
  5. Extraire informations d'une String
    Par Zapan dans le forum Langage
    R�ponses: 8
    Dernier message: 07/01/2006, 20h28

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