Rechercher et afficher une/des lignes de texte

Signaler
Messages postés
19
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
12 juin 2008
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Salut VBFrance ^^

Je ne suis pas nouveau ici, je sais qu'il faut chercher. J'ai bien essayé de chercher, mais contrairement à ce qu'on pourrait croire, les sources et les tutoriaux correspondant à ma requête sont rares. En plus, je suis débutant en VB, ce qui n'aide pas du tout.

J'ai un fichier (je vous jure!).
Ce fichier correspond à une liste d'items, précédés d'un numéro d'identification.
Voici un exemple:
4211002    Pain blanc
4211004    Pain brun
4211006    Céréales
4211005    Tomates
Mon but est de faire une recherche dans le fichier, par le nom bien sûr et non pas par l'ID, et de retourner la ou les lignes correspondantes. Voici un autre example:
Recherche:
"Céréales"
Retour:
"4211005    Céréales"

Recherche:
"Pain"
Retour:
"4211002    Pain blanc
4211004    Pain brun"

Je ne crois ma requête particulièrement complexe, mais j'ai de la difficulté. Merci à quiconque tentera de m'aider.

- Lazlo 

1 réponse

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Salut,
Le mieux (je pense) si tu ne doit qu'y effectuer que des recherches, est de charger un bonne fois pour toute ton fichier dans un tableau.

Puis de rechercher dans ce tableau
Je ne suis pas trop habitué a .NET alors il y a surement plus "pro" mais voici une petite idée à développer.

Private _contenu As String()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   _contenu = File.ReadAllLines("C:\Ex.txt", System.Text.Encoding.Default)
End Sub<hr />

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   Dim s As String
   Dim retour As String
   For Each s In _contenu
       'Casse sensitive
       'If s.Contains(TextBox1.Text) Then
       'Pas Casse Sensitive
       If s.ToUpper.Contains(TextBox1.Text.ToUpper) Then
           retour = String.Concat(retour, s & vbNewLine)
       End If
   Next
   If retour <> String.Empty Then MessageBox.Show(retour)
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée