Recherche de chaine dans un textbox. [Résolu]

ggrug26 40 Messages postés jeudi 29 septembre 2005Date d'inscription 30 mai 2008 Dernière intervention - 29 avril 2008 à 07:59 - Dernière réponse : ggrug26 40 Messages postés jeudi 29 septembre 2005Date d'inscription 30 mai 2008 Dernière intervention
- 29 avril 2008 à 10:16
Bonjour,

Je n'arrive plus a remettre la main (enfin c'est dans ma mémoire) sur la commande qui permet de rechercher une chaine dans une chaine .
Dans le cas présent, je dois rechercher une chaine dans un objet textbox.

Il me semble que c'est un truc du genre :" result = findstring(chainerechercher, chainetotale, 1 )"
ce qui donnerais avec mon textbox: "result = findstring(chainerechercher, textbox1.text, 1 )"

Avec result retournant le nombre de fois ou l'occurence a été trouvé dans chainetotale.
Mais il me semble que cette ligne est une ligne de C++.

Quelqu'un aurait l'équivalent pour le C# ?
Merci
Afficher la suite 

5 réponses

Répondre au sujet
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 29 avril 2008 à 08:26
+3
Utile
Bonjour,

Effectivement (du moins à ma connaissance ^^), il n'existe pas de fonction pour chercher le nombre d'occurences de sous-chaine dans une chaine.
Cependant, tu peux :
1) Utiliser la fonction string.IndexOf(...):

int occ = 0;
string str = "totototo";
string inStr = "to";

int lastIndex = str.IndexOf(inStr, 0);
while (lastIndex != -1)
{
occ++;
lastIndex = str.IndexOf(inStr, lastIndex + 1);
}

2) Ou tout simplement, utiliser les expressions régulières pour compter.
string str = "totototo";
Regex reg = new Regex("to", RegexOptions.None);//using System.Text.RegularExpressions

int occ = reg.Matches(str).Count;


Voila,

Bonne journée,


Billou_13
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de billou_13
billou_13 874 Messages postés jeudi 4 mars 2004Date d'inscription 19 août 2014 Dernière intervention - 29 avril 2008 à 09:18
+3
Utile
Ah bon, faut le dire alors ^^

Tu as string.Contains(string) qui te renvoie un booléen pour cela.

Bonne journée,


Billou_13
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de billou_13
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 29 avril 2008 à 08:23
0
Utile
Salut,
Tu peux utiliser la méthode SubString de la class String, ou alors les expressions régulières avec la class Regex.

<hr />
-My Blog-
Commenter la réponse de cs_Bidou
ggrug26 40 Messages postés jeudi 29 septembre 2005Date d'inscription 30 mai 2008 Dernière intervention - 29 avril 2008 à 09:02
0
Utile
Ok, merci.

Je vias tester la fonction Regex, en fait je ne veux pas compter le nombre d'occurence, je veux simplement savoir si la chaine est présente dans l'autre.
Commenter la réponse de ggrug26
ggrug26 40 Messages postés jeudi 29 septembre 2005Date d'inscription 30 mai 2008 Dernière intervention - 29 avril 2008 à 10:16
0
Utile
ha, ben nikel, je vais ptetre prendre plutot ça alors, plus simple a mon gout,

sinon je viens de le faire avec l'autre méthode:

int indexchaine = TbIsoRigParRapAutrGach.Text.IndexOf(
"ctc" + i);

if (indexchaine < 0)
{
TbIsoRigParRapAutrGach.Text += ligneajout;
//Ajout de la ligne
}
i++;

Merci de votre aide !!!
Commenter la réponse de ggrug26

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.