[C#] [1.1] Extraction dans une chaine

Résolu
SupaLou Messages postés 74 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 19 septembre 2006 - 1 août 2006 à 10:20
heineken889 Messages postés 1 Date d'inscription dimanche 30 mars 2008 Statut Membre Dernière intervention 30 mars 2008 - 30 mars 2008 à 15:16
Bonjour tout le monde.

Est-il possible dans une chaine de caractères d'extraire un ensemble de caractère se situant entre deux caractères connus?? Humhum
Un exemple sera plus clair ;-)

J'ai ces trois chaines là:
C: 1,115 Go d'espace libre sur 7,798 Go
D: 1,21 Go d'espace libre sur 16,952 Go
E: 9,371 Go d'espace libre sur 16,952 Go

et je veut extraire
1,115 pour la premiere
1,21 pour la deuxième
9,371 pour la troisième

Merci de votre aide

amicalemement

10 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 10:47
Salut,
Si tu choisis la solution des expressions régulières proposée ci-dessus, voilà ce que ça donne :

string txt =
"C: 1,115 Go d'espace libre sur 7,798 Go";

string exp =
@"\d+(,\d+)?";

string outV = System.Text.RegularExpressions.
Regex.Match(txt,exp).Value;
Ca récupère uniquement la première chaîne (1,115 et pas 7,798).
Si la deuxième partie t'intéresse aussi, faut légèrement modifier le code...

<hr size="2" />VC# forever
3
gcorbineau Messages postés 143 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 octobre 2006
1 août 2006 à 10:29
Tu fais une recherche sur la premiere chaine connu tu récupere la position et la longueur de celle ci, tu fais pareil pour la deuxieme et tu récuperes ce qu'il a entre les deux positions trouvée.

Dans la classe String tu devrai trouvé tous ce que tu as besoin.

Tu peux aussi le faire avec une expression réguliere qui retire tous les caracteres sauf la virugule.
0
SupaLou Messages postés 74 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 19 septembre 2006
1 août 2006 à 12:02
Merci a tous les deux.
La solution de bidou à l'air d'être exactement ce que je cherchais a faire. Je vais donc l'essayer.
En revanche je ne suis pas très callé en "expressions régulière". Que signifie exactement  @"\d+(,\d+)?
 ca fait un peu charabia quand meme

Encore merci

++
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 12:09
Ca veut dire qu'on cherche une valeur numérique qui revient 1 fois ou plus [\d+] suivit d'éventuellement une virgule avec une valeur numérique qui revient 1 fois ou plus (le éventuellement est du au '?')

<hr size="2" />VC# forever
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SupaLou Messages postés 74 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 19 septembre 2006
1 août 2006 à 13:15
ah oki
merci beaucoup pour ses précisions :)
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
1 août 2006 à 15:42
sinon... un autre exemple : http://www.csharpfr.com/codes/REMPLACER-CHAINE-COMPRISE-ENTRE-BORNES_34866.aspx
Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
SupaLou Messages postés 74 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 19 septembre 2006
2 août 2006 à 09:10
Merci pour la source  sebmafate, ca peut toujours être utile. :)
0
beny100 Messages postés 213 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 1 avril 2009
22 nov. 2006 à 20:02
je dispose d'un fichier txt dont je veux afficher sur un doc excel après avoir extrait certaines colonnes de ce fichier.
comment y faire
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
22 nov. 2006 à 20:31
Quel est le rapport avec ce topic?
Merci de créer un nouveau thread sur le forum pou une nouvelle question.

<hr size="2" />-Blog-
0
heineken889 Messages postés 1 Date d'inscription dimanche 30 mars 2008 Statut Membre Dernière intervention 30 mars 2008
30 mars 2008 à 15:16
bonjours à tous

tu as dit :
" string outV=System.Text.RegularExpressions.Ragex.Match(txt,exp).Value;
si la deuxième partie t'intéresse aussi , faut  légèrement modifier le code ... "

mais c'est quelle modification qu'il faut faire, car j'ai beau chercher et je la trouve pas.

mon problème est casi identique sauf que c'est pas la première valeur qu'il me faut mais plutot la 5ème

voici un extrait du contenu de mon string et c'est la valeur souligné qu'il me faut :
S     ( VA)  =   0.0
Q   ( VAR) = ----
PF            =  1.00
DFF        = ----
A RMS  (A) = 0.63
V RMS (A) = 0.00
A DC      (A) = + 0.61
V DC      (V) = - 0.01
et plein d'autre valeur

merçi pour l'aide
0
Rejoignez-nous