Recherche de chaine dans un textbox.

[Résolu]
Signaler
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008
-
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008
-
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

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
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
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
25
Ah bon, faut le dire alors ^^

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

Bonne journée,


Billou_13
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
56
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-
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008

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.
Messages postés
40
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
30 mai 2008

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 !!!