Recherche dans un fichier texte [Résolu]

Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 22 déc. 2009 à 19:22 - Dernière réponse : Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 22 déc. 2009 à 19:44
3
Merci
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)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de cs_Jack
Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 22 déc. 2009 à 20:46
0
Merci
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 !
Commenter la réponse de Tweet75
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 23 déc. 2009 à 00:54
0
Merci
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)
Commenter la réponse de cs_Jack
Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 23 déc. 2009 à 13:08
0
Merci
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
Commenter la réponse de Tweet75
Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 23 déc. 2009 à 22:24
0
Merci
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 !
Commenter la réponse de Tweet75

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.