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 mot entre deux délimiteurs


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 recherche mot entre deux délimiteurs
    Bonjour,
    je suis un peu bloqué dans mon problème:
    en résumé: j'ai un texte de cette forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    
    
    hdsjskkdk>MOT1<kjdshfksjdfks...........>MOT2<dfkjhsdfkj.........................>MOTi<.................
    je cherche une méthode pour extraire ces tockens {mot1, mot2,.....} qui sont délimités par '>' et '<' .


    merci d'avance pour vos aides.

  2. #2
    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
    Salut
    Ben c est faisable

    Tu traites ton fichier entier comme une seule chaine
    Tu remplaces eventuellement les sauts à la ligne par rien
    Tu inities x varaibels
    La premiere sera le premier > rencontré :A
    La seconde sera le premier < rencontré : B
    La troisieme sera le debut de traitement de la chaine , c est à dire , la seconde +1 : C = 0 ( ou 1 , faut voir , pas sur )
    La quatrime de type bool qui dit refaire : d

    Ecris ensuite une fonction qui recupere les positions et extrait dans une boucle
    for ( D= 0 ; D <= tachaine.length , D++ ) // à corriger , mais pas tres dur
    for ( int J = A , j <= B , j++ ) { if ( ... ) {bla bla bla ; C = B ; A = A + C ; ajouter dans stringlist ; }}
    Voilà

  3. #3
    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
    Un petit bout de code à optimiser, mais qui devrait fonctionner:
    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
      TStringList *wordList = new TStringList();
      TStringList *fileSL = new TStringList() ;
      fileSL->LoadFromFile( "C:\\test.txt" ) ;
      int count = 1 ;
      int index1 = 0 ;
      int total = 1 ;
     
      do
      {
        //ON RECHERCHE LE PROCHAIN '>'
        index1 = (fileSL->Text.SubString(total, fileSL->Text.Length() ) ).Pos(">") ;
        if(index1==0) break;
        //ON REPLACE L'INDEX GENERAL
        total = index1 + total + 1 ;
        //ON RECHERCHE LE PROCHAIN '<'
        count = (fileSL->Text.SubString(total, fileSL->Text.Length() ) ).Pos("<") ;
        //ON RECUPERE LE MOT ET ON L'AJOUTE A LA LISTE
        AnsiString tmp = fileSL->Text.SubString(total-1,count )  ;
        wordList->Add( tmp ) ;
      }while( (index1 != 0)) ;
      delete fileSL ;
     
    //AFFICHAGE DES MOTS TROUVÉS
      for( int i=0; i< wordList->Count; i++)
        ShowMessage( wordList->Strings[i] ) ;
     
      delete wordList ;

  4. #4
    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
    Bonjour,

    Je me trompe, ou tu es en train de développer un analyseur XML ?

  5. #5
    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
    ouais on dirait bien

    sinon pour parser du xml
    t as un composant ou çà : http://khayyam.developpez.com/articles/cpp/tinyxml/

  6. #6
    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
    ou encore TXMLDocument si tu utilises BCB6

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

Discussions similaires

  1. [WD14] Recherche d'un mot entre deux textes
    Par wojc01 dans le forum WinDev
    Réponses: 6
    Dernier message: 09/11/2009, 19h38
  2. [XL-2000] Somme de recherche V entre deux dates
    Par gocho dans le forum Excel
    Réponses: 3
    Dernier message: 03/06/2009, 15h37
  3. [WD12] recherche enregistrements entre deux bornes
    Par cgr_007 dans le forum WinDev
    Réponses: 2
    Dernier message: 28/03/2009, 22h40
  4. [VB.Net 2.0] - Regex chercher un mot entre deux ?
    Par troxsa dans le forum Framework .NET
    Réponses: 8
    Dernier message: 20/02/2007, 22h04
  5. [RegEx] Supprimer le contenu qui se trouve entre deux délimiteurs
    Par goldyfruit dans le forum Langage
    Réponses: 8
    Dernier message: 23/01/2007, 20h34

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