Recherche de chaine dans un textbox.

Résolu
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008 - 29 avril 2008 à 07:59
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008 - 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

5 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
29 avril 2008 à 08:26
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
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
29 avril 2008 à 09:18
Ah bon, faut le dire alors ^^

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

Bonne journée,


Billou_13
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
29 avril 2008 à 08:23
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-
0
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008
29 avril 2008 à 09:02
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.
0

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

Posez votre question
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008
29 avril 2008 à 10:16
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 !!!
0
Rejoignez-nous