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 :

Récupération de certaines lignes d'un RichEdit (ou Mémo)


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 19
    Points
    19
    Par défaut Récupération de certaines lignes d'un RichEdit (ou Mémo)
    Bonjour,

    Je possède un RichEdit avec un Gcode à l'interieur.
    Le Code se compose plus ou moin de cette facon
    Exemple :
    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
     
    (ESSAI)  // Titre
    G90 G80 G40 M3
    G92 X0 Y0 Z0
    (T5 FRAISE A SURFACER)  // Outil
    G1 F140
    X0.000
    Z-0.026
    Y0.029
    Y0.058 Z-0.026   // Positions
    Y0.087
    Y0.116 Z-0.025
    Y0.145 Z-0.027
    Y0.174 Z-0.026
    Y0.029
    (T2 FRAISE A CORRONER) // Outil
    Y0.058 Z-0.026
    Y0.087
    Y0.116 Z-0.025
    Y0.145 Z-0.027
    Y0.174 Z-0.026
    G90 G80 G40 M3
    G92 X0 Y0 Z0
    G1 F140
    Des positions en X Y Z , un titre entre parenthese et des outils également entre parenthese.

    Mon but et de recuperer seulements les outils de ce code et de les envoyer dans un Memo (Mémo3)

    Pour ceci j'ai déclarer 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
    23
    24
     
    void fonction(TRichEdit *RichEdit1,TMemo *Memo2,TMemo *Memo3)
    {  //Debut Void
       for (i=0; i < nbligne; i++)
       {
        DWORD count = 0;
        int Caret = 0;
        ligne=RichEdit1->Lines->Strings[i];                     // ligne = La ligne numéro i dans richedit
        pstr = ligne.c_str();
        while(*pstr)
        {
          if(*pstr >= '(' && *pstr <=')')
          {count++;
           }
         pstr++;
         }
        Caret += 2;                                            //saut de ligne
        Memo2->Lines->Add(count);                     // Affiche Nombre de Lettres par ligne dans Memo2
         if (count>=1) 
         {
         Memo3->Lines->Add(ligne);     // Affiche la ligne comportant + de 1 ( ou )
         }
      }
    }  // Fin Void
    En procédant de cette facon j'arrive obtenir toutes les lignes avec qq chose entre parenthese. Mais ca ne me suffit pas car le titre peut s'en mêler.
    J'ai donc essayer de dire qu'il devait y avoir un 'T' également sur cette ligne vu qu'un outil commence toujours par (Tx ..... ).
    Mais les combinaisons que j'ai éssayé sont impossible a cause du pointeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(*pstr >= '(' && *pstr <=')' && *pstr >='T' && *pstr <'U')
    ou 2 if a la suite mais sans succes.
    Besoin d'une ampoule 250 watt pour m'éclairer

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Je tenterais ceci mais sans avoir pu le tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(*pstr >= '(' && *pstr <=')' && (*(pstr+1) =='T' && (*(pstr+2) >='0') ||(*(pstr+2)<='9'))
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Héhé exact !

    J'ai juste retirer le " où le 3e caractère est plus petit que 9 " et j'ai remplacer mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(*pstr >= '(' && *pstr <=')' )
    par ( qui veut dire la même chose ^^ )

    ce qui donne un résultat total de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(*pstr == '(' && (*(pstr+1) =='T' && (*(pstr+2) >='0') ))
    Je te remercie énormément !
    J'ai bien seulement les lignes du type (T1 FRAISE A SURFACER) etc..
    Ca fait beaucou plus propre dans mon Mémo du coup

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

Discussions similaires

  1. [XL-2010] Récupération d'élément d'une certaine ligne en fonction de la valeur d'une cellule
    Par florent.saunier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2014, 11h41
  2. Récupération de certaines lignes d'un fichier texte
    Par D_light dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 31/10/2012, 16h46
  3. Récupéré l'identifiant d'une certaine ligne
    Par Trunks dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/01/2005, 01h08
  4. [C#] Récupération d'une ligne d'un DataView en c#
    Par jerome456 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 20/01/2005, 09h29
  5. Limiter le nombre de Ligne d'un RichEdit
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2004, 10h16

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