Faire une Recherche dans un Fichier à partir d'une Chaine de Caractère

Résolu
Maiku Messages postés 190 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 4 juillet 2007 - 25 oct. 2005 à 15:10
devroeroy Messages postés 1 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 10 février 2006 - 10 févr. 2006 à 19:49
Bonjour

Est il possible de faire une recherche de caractère dans un fichier texte qui donnerait le même type de resultat qu'un like en sql .
Exemple :

si je cherche un Mot commencant par P et que dans moi fichier texte j'ai patate, poivre, etc, il devra m'affichait tout les lignes qui commenceront par la lettre P.

Pour l'instant, j'ai le code suivante :


if(this.solucevirustrouvee.Items.Count !=0)


{


this.solucevirustrouvee.Items.Clear();


}


FileStream nomvirus = new FileStream("NomVirus.txt",FileMode.Open,FileAccess.Read);


StreamReader lirenom = new StreamReader(nomvirus);


string lire = lirenom.ReadLine();


indexnom=0;


i=0;


string nom ="inconnu";


while(lire != null)


{


if(lire == this.NomVirus.Text)


{


nom ="trouvée";


this.solucevirustrouvee.Items.Add(lire);


indexrecup[i] = indexnom;


i = i + 1;


}


else


{


indexnom = indexnom + 1;


}


MessageBox.Show(""+lire);


lire = lirenom.ReadLine();


}


if(nom=="inconnu")


{


this.solucevirustrouvee.Items.Add("Ce Virus n'existe pas dans la base de donnée");




}


MessageBox.Show(""+nom);


MessageBox.Show(""+indexnom);


lirenom.Close();

Pour l'instant , il n'affiche que si le nom exacte existe dans le fichier, moi je veux que si la ligne contient poivre de grece, et que j'ai tapé en recherche poivre, il m'affiche poivre de grece.

Quelqu'un peut il me dire si c'est possible de faire ça avec les fichiers txt ?
Merci d' Avance
Maiku

5 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
25 oct. 2005 à 15:33
string lire;
while ((lire = lirenom.ReadLine()) != null) {
if (lire.StartWidth("t")) {
this.soluceVirusTrouvee.Add(lire);
}
}

Sébastien FERRAND
[MVP C#]
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
25 oct. 2005 à 15:19
je vois 1 solution simple... et une autre pour le fun :

- pour chaque ligne tu fais : ligne.StartWith("t") // pas trop dur ca

- et pour le fun, une expression régulière sur l'ensemble du fichier : ^t.*$

Sébastien FERRAND
[MVP C#]
0
Maiku Messages postés 190 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 4 juillet 2007
25 oct. 2005 à 15:21
Tu peux expliquer ce que fais exactement ta solution stp ?

Maiku
0
Maiku Messages postés 190 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 4 juillet 2007
25 oct. 2005 à 16:02
Merci a toi j'ai utilisé ta solution, et l'ai un peu completé, mon code donne maintenant :


while(lire != null)


{


if(lire.StartsWith(this.NomVirus.Text) || lire.EndsWith(this.NomVirus.Text))


{


nom ="trouvée";


this.solucevirustrouvee.Items.Add(lire);


indexrecup[i] = indexnom;


i = i + 1;




}

Grâce à toi , je viens de comprendre mieux les methodes startswith et endswith, merci à toi

Maiku
0

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

Posez votre question
devroeroy Messages postés 1 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 10 février 2006
10 févr. 2006 à 19:49
Bonjour,

Question: Je cherche a faire une recherche d'un texte dans un fichier de type Word (au lieu de txt qui marche trés bien). Est ce que vous pourriez me dire comment je peux m'y prendre parce que lorsque je fais un readline de mon streamreader de mon fichier word, il me renvoi une suite de bit et par conséquent je ne peux pas tester si ma chaine de caractere est dans mon fichier .
Remarque. Je cherche a faire une recherche de texte dans des fichiers de tout type d'extension, pas seulement sur des fichiers txt pour lesquels ca marche trés bien.

Merci d'avance!

Seb
0
Rejoignez-nous