Rechercher et afficher une/des lignes de texte

minb2215 Messages postés 19 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 12 juin 2008 - 27 avril 2008 à 17:29
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 28 avril 2008 à 08:30
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

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 avril 2008 à 08:30
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
0
Rejoignez-nous