Recherche dans un fichier texte [Résolu]

Signaler
Messages postés
87
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
3 janvier 2012
-
Messages postés
87
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
3 janvier 2012
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
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)
Messages postés
87
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
3 janvier 2012

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 !
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
73
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)
Messages postés
87
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
3 janvier 2012

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
Messages postés
87
Date d'inscription
jeudi 5 novembre 2009
Statut
Membre
Dernière intervention
3 janvier 2012

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 !