Bonjour,

J'ai un fichier txt qui contient quelque chose comme ca :

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
28
29
 
 
/begin MEASUREMENT ACM_2st_bypass_dmnd "Duty cycle of the bypass actuator"
      UBYTE CM_1 /* FT_enumeration1:((1=TRUE) (0=FALSE) ) */ 1 0 0 1
    ECU_ADDRESS 0xFFF90EB2
    /begin IF_DATA DIM
      0xFFF90EB2 INTERN BYTE
    /end IF_DATA
    /begin IF_DATA VISU
      ADR_COM 0xFFF90EB2 ADR_ABS 0xFFF90EB2
    /end IF_DATA
    /begin FUNCTION_LIST
      ACM
    /end FUNCTION_LIST
    /end MEASUREMENT
 
    /begin MEASUREMENT ACM_2st_two_stage_turbo "Flag indicating whether 2 step turbocharge is used"
      UBYTE CM_1 /* FT_enumeration1:((1=TRUE) (0=FALSE) ) */ 1 0 0 1
    ECU_ADDRESS 0xFFF90E8C
    /begin IF_DATA DIM
      0xFFF90E8C INTERN BYTE
    /end IF_DATA
    /begin IF_DATA VISU
      ADR_COM 0xFFF90E8C ADR_ABS 0xFFF90E8C
    /end IF_DATA
    /begin FUNCTION_LIST
      ACM
    /end FUNCTION_LIST
    /end MEASUREMENT
Je desire recuperer seulement une des deux balises MESUREMENT (toute entiere). J'ai donc teste cette Regex :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
@"/begin(\s+)MEASUREMENT(\s+)(\S+)[\S\s]+/end(\s+)MEASUREMENT"
Le probleme, c'est que cela me donne le texte depuis le premier "/begin MEASUREMENT" jusqu'au dernier "/end MEASUREMENT" alors que moi je veux seulement avoir un collection de chaque MEASUREMENT

J'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
MatchCollection matVariable = Regex.Matches(fichier, @"/begin(\s+)MEASUREMENT(\s+)(\S+)[\S\s]+/end(\s+)MEASUREMENT");
Je ne sais pas si j'ai ete assez clair ... Je suis la pour toute question

Merci d'avance,

Mathieu