plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention 7 avril 2012
-
31 mai 2007 à 11:43
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
2 juin 2007 à 23:07
Bonjour,
J'aimerais savoir si il existe une fonction qui permettrait à partir d'une chaine de caractères de retournes les entiers qui sont dans cette chaine.
Par exemple : fonction("une chaine avec 1 entier") retournerait 1
fonction("1 chaine 2 caractères") retournerit 1 et 2 (dans un tableau par exemple).
Voila, si quelqu'un connait une fonction... Je ne vois pas vraiment comment la programmer.
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009 31 mai 2007 à 11:54
Bonjour,
Je ne sais pas s'il existe une fonction mais pour la coder je ferais :
- lecture des caratères un par un jusqu'à trouver un chiffre.
- une fois un chiffre trouvé le placer dans une autre chaine temp
- lecture de la suite de la chaine caractere par caractere jusqu'à trouvé autre chose qu'un chiffre en ajoutant chaque chiffre trouvé à la suite de la chaine temp.
- convertir la chaine temp qui est un entier en int et le placer dans une liste.
- vider la chaine temp
- continuer comme ça jusqu'à la fin de la chaine afin de trouver tous les nombres
- renvoyer la liste
plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention 7 avril 20121 31 mai 2007 à 14:15
J'ai fais en gros ce que tu as dis Catamania. Sebmafate, je ne vois pas comment on fait pour utiliser une expression régulière en C#, pourrais tu me donner un exemple simple stp?
Sinon, voila le code que j'ai fait (si ça peut servir à quelqu'un...)
private
String[] rendLesNumDUnString(String phrase)
{
//prend en parametre une phrase et rend un tableau
ça fonctionne plutot bien (sauf cas particuliers pas encore traité du genre "ma chaine t12" qui rend 12 alors que t12 n'est pas un nombre). Je m'occupe des cas particuliers maintenant
Merci pour votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention 7 avril 20121 31 mai 2007 à 15:19
Merci pour ta réponse rapide Sebmafate. J'essaye de faire quelquechose avec une expression régulière maintenant (ça serait beaucoup plus court en code apparement ).
J'ai rajouté (,?|.?) car je veux aussi récupérer les chiffres à virgules. Mais je ne vois pas comment il faut faire après pour afficher les résultats (dans une messageBox par exemple) ? J'ai cherché et apparement ça ne fonctionne pas comme un tableau, bien que le MatchCollection contienne a priori plusieurs nombres. Comment se fait le parcours d'un matchCollection puis l'affichage?
J'ai tenté ça :
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 31 mai 2007 à 15:50
Hello,
Fais attention tout de même, sauf erreur, le . dans les expressions régulières signifie "n'importe qule caractère".
Utilise \. pour matcher un '.'
Si tu veux utiliser un peu les expressions régulières, je te conseille expresso, un excellent programme pour construire et tester des expression régulières, et en plus, c'est gratuit !
Amicalement, SharpMao
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
plop3000
Messages postés135Date d'inscriptionmercredi 23 mai 2007StatutMembreDernière intervention 7 avril 20121 31 mai 2007 à 16:45
Merci en effet le "." signifie un caractère quelconque. J'ai donc mis [,|.] au lieu de (,|.)
D'ailleurs si quelqu'un sait quelle différence il y a entre faire (,|\.) et [,|.] je veux bien une explication . Je testerai expresso et matfools, merci