Recherche dans un fichier texte

Résolu
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012 - 22 déc. 2009 à 19:22
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012 - 23 déc. 2009 à 22:24
Bonsoir a tous,

J'ai un petit programme et je sèche pour savoir comment m'y prendre...

Je possède un fichier texte conçu comme suit :

TRI010100 # camion # tata #
DER145478 # voiture # oncle
TRI074788 # vélo # frere

J'aimerais faire un petit programme qui ferais que quand je tape dans ma textbox1 : "TRI", il me dise qu'il a trouvé : TRI010100 et TRI074788.

Je sais ouvrir un fichier texte, mais aprés je ne sais pas comment lui dire de chercher que dans les 9 première lettres et de ranger le résultat dans un tableau...

Pouvez vous m'aiguillez s'il vous plait ?

Merci d'avance

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 déc. 2009 à 19:44
Salut
De quelle manière as-tu ouvert ton fichier texte ?
As-tu regardé les fonctions associées aux manips autour des fichiers ?
Tu les découvriras très facilement en chargeant n'importe quelle souce du site en recherchant "ouvrir fichier" ou "lire fichier" parmi les Codes en Net seulement.
Il doit surement (*) y avoir un équivalent de "Line Input" ou "ReadLine" ...
(*) Je n'ai pas la syntaxe VB.Net en tête)
Ensuite, une fois que tu auras la ligne entière, il te suffira de :
- découper les différents items avec un Split (ou de ce genre)
- vérifier que le premier item commence bien par "TRI" comme maChaine.StartsWith("TRI")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012
22 déc. 2009 à 20:46
Bonsoir Jack,

Voici le programme que j'ai fait. J'aimerais savoir s'il peut être simplifié ou s'il y a des erreur :

Private Sub Visual_Parts()

Dim monstreamreader As New System.IO.StreamReader(Pieces) 'on rentre le chemin du fichier donnée
Dim ligne As String ' Variable contenant le texte de la ligne
Dim testrecherche As String ' Variable permetant de tester si le composant est présent dans ligne
Dim tableau() As String 'Tableau permettant de stocker la référence du composant et ses informations
Dim occurence(50) As String
Dim i As Integer

Try

i = 0
Do
ligne = monstreamreader.ReadLine
testrecherche = InStr(ligne, TextBox1.Text)

If testrecherche <> 0 Then
If ligne.StartsWith(TextBox1.Text) Then
tableau = Split(ligne, "#")
occurence(i) = tableau(0)
i = i + 1
End If

End If


Loop Until ligne Is Nothing ' On va jusqu au bout du fichier texte puis on le ferme
monstreamreader.Close()

Catch ex As Exception ' Affiche une msgbox en cas d'erreur de fichier introuvable
MsgBox("Erreur programme !" & vbCrLf & "Un problème au niveau du réseau a été détecté." & vbCrLf & "Veuillez réessayer ultérieurement.", MsgBoxStyle.Exclamation, "Problème réseau")

End Try

TextBox1.SelectAll()
MsgBox(occurence(0))
MsgBox(occurence(1))
MsgBox(occurence(2))
MsgBox(i)


End Sub




Tout fonctionne mais il y a une chose qui m'ennuie : je dois déclarer le nombre de case du tableau "occurence" et j'aimerais qu'il soit indéfinie...

Merci bien !
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 déc. 2009 à 00:54
Ca semble correct.
Je viens même de l'essayer, tout fonctionne.
Alors la seule chose dont dépend cette différence, c'est le contenu de TextBox1.Text ...
Qu'y a t-il dedans ? peux-tu le vérifier
Attention : "A" n'est pas "a" pour un StartsWith (sensible min/maj)
Corrige éventuellement :
.StartsWith(TextBox1.Text, StringComparison.OrdinalIgnoreCase)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012
23 déc. 2009 à 13:08
Salut Jack,

Tout d'abord merci de t'attarder sur mon sujet. Je ne l'ai pas mis sur le bout de programme ci dessus mais j'ai mis une ligne pour convertir le texte en majuscule aprés traitement donc plus de soucis de ce coté là.


Merci encore
0

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

Posez votre question
Tweet75 Messages postés 87 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 janvier 2012
23 déc. 2009 à 22:24
Bonsoir,

Petite question : peut on créer un tableau indéfini au lieu de : Dim occurence(50) As String ?

J'ai fait Dim occurence() As String mais j'ai une erreur comme quoi aucune valeur n'est affecté dans occurence...

Merci !
0
Rejoignez-nous