Bonjour,
Je possède un RichEdit avec un Gcode à l'interieur.
Le Code se compose plus ou moin de cette facon
Exemple :
Des positions en X Y Z , un titre entre parenthese et des outils également entre parenthese.
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
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 :
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.
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
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
Besoin d'une ampoule 250 watt pour m'éclairer
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.
Partager