Lire un fichier texte ligne par ligne en vb.net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 77 691 fois - Téléchargée 32 fois

Contenu du snippet

Bonjour,

Après une petite recherche sur différents moteurs et site de programmation, j'ai remarqué qu'il n'éxistait pas de code pour effectuer une lecture sur un fichier texte ligne par ligne, qui soit facilement compréhensible, j'essaie donc d'apposer un bout de code, j'espère qu'il vous servira autant qu'à moi.

Source / Exemple :


Sub lectureFichier(ByVal fichier As String)

        Try
            Dim monStreamReader As New StreamReader(fichier) 'Stream pour la lecture
            Dim ligne As String ' Variable contenant le texte de la ligne

           do
                ligne = monStreamReader.ReadLine
                MsgBox(ligne) 
                ' TRAITEMENT A EFFECTUER SUR LA LIGNE ICI
           Loop Until ligne Is Nothing            monStreamReader.Close()

        Catch ex As Exception
            MsgBox("Une erreur est survenue au cours de l'accès en lecture du fichier de configuration du logiciel." & vbCrLf & vbCrLf & "Veuillez vérifier l'emplacement : " & fichier, MsgBoxStyle.Critical, "Errueur lors e l'ouverture du fichier conf...")
        End Try

    End Sub

Conclusion :


Je sais qu'il existe une meilleur solution pour indiquer la fin du fichier, en vb 6 c'étais EOF (end of file), mais je n'ai pas le temps de regarder.

Si quelqu'un connait la solution, je modifierais la source.

A voir également

Ajouter un commentaire

Commentaires

chris37000
Messages postés
43
Date d'inscription
vendredi 22 décembre 2000
Statut
Membre
Dernière intervention
12 décembre 2017
-
Merci pour le EndOfStream()

Car la fonction line is nothing a ces limites. En cas de ligne vide on sort alors qu'il reste du texte.
cs_lamrani06
Messages postés
5
Date d'inscription
samedi 28 avril 2012
Statut
Membre
Dernière intervention
26 juillet 2012
-
ce code me donne un erreur : Index was outside the bounds of the array.

Using flux As New StreamReader("P:\New folder\3900329287_3152012165629.ok")
While flux.EndOfStream = False
Dim Str As String = flux.ReadLine

Dim dataSource As String()
dataSource = Str.Split(New Char() {":"}, StringSplitOptions.RemoveEmptyEntries)
TextBox1.Text = dataSource(0).Trim
TextBox2.Text = dataSource(1)
TextBox3.Text = dataSource(2).Trim
TextBox4.Text = dataSource(3).Trim
TextBox5.Text = dataSource(4).Trim
TextBox6.Text = dataSource(5).Trim
TextBox7.Text = dataSource(6)
TextBox8.Text = dataSource(7)
end while
end using
SpiderTomtom
Messages postés
11
Date d'inscription
jeudi 23 juillet 2009
Statut
Membre
Dernière intervention
7 septembre 2010
-
Bonsoir a tous,

Voila j'ai suivi le code donné en début et tout fonctionne à merveille. Seulement étant débutant, j'ai ma petite question. J'ai un fichier texte qui me sert de base de donnée. C'est pour cela que je voudrais l'inclure à "My ressources" pour qu'il ne puisse pas être modifié par un tiers. J'ai donc modifié la ligne comme ceci :

Dim monStreamReader As New StreamReader("application.My.resources.fichier.txt")

Mais lors de l'éxécution du programme, le catch prend direct le relais et m'affiche donc l'erreur.
Cela est-il possible donc de faire ainsi et si oui comment ??

Merci par avance
ZLASSI
Messages postés
5
Date d'inscription
mercredi 16 mai 2007
Statut
Membre
Dernière intervention
9 octobre 2008
-
Bonjour à tous,

Quelqu'un peut m'aider à faire concaténer deux fichiers txt dans un nouveau fichier txt?
le contenu de a.txt et b.txt seront deplacées dans c.txt

Merci d'avance
corbamis
Messages postés
1
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
8 mai 2008
-
Merci SlaytanIK, j'avais le problème suivant, avec le premier exemple, à savoir la comparaison à Nothing de la ligne lue.
Si jamais la ligne lue était une ligne vide, cela mettait fin à la boucle, ce que ne fait pas le EndOfStream, justement, et permet de lire au-delà des lignes vides.

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.