Récupérer les lignes d'un document texte

Résolu
Profil bloqué - 31 mai 2011 à 00:17
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
- 31 mai 2011 à 14:09
Alors bonjour, je souhaite récupérer à partir d'un fichier texte, en commencant à la 3 eme ligne toutes les lignes jusqu'à la fin et lettre chaque ligne dans une list box. Je suis en visual basic 2010 express et je suis débutant. Merci beaucouo d'avance.

9 réponses

4u4me4us
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
31 mai 2011 à 10:14
Teste cela

dim v_compte as byte 
'Open file.
FileOpen(1, "E:Modif.txt", OpenMode.Input)

While Not EOF(1)
' Read line into variable.
TextLine = LineInput(1)
if v_compte > 1 then List1.Items.Add(TextLine)
if v_compte < 1  then v_compte = v_compte+1
End While
FileClose(1)
End Sub
End Class 


Si ça marche comme cela renseigne toi sur la fonction freefile car FileOpen(1 c pas très propre
3
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
31 mai 2011 à 10:43
Salut

Une autre façon
Private listitems As New List(Of String) 
Private Sub ReadFile() 
Dim pathfichier As String 
'le chemin du fichier 
pathfichier = "E:\test.TXT" 
'je lis tout le fichier dans listitems 
Try 
listitems = System.IO.File.ReadAllLines(pathfichier).ToList 
Catch ex As Exception 
MessageBox.Show(ex.Message) 
End Try 
'copier à partir de la 3 ligne attention la premiere est indexée par 0 
For iter = 2 To listitems.Count - 1 
ListX.Items.Add(listitems(iter)) 
Next 
End Sub
3
lolokun
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
6
31 mai 2011 à 09:06
Bonjour,

Tu es débutant soit, mais cela n'empeche pas d'effectuer une recherche ou de poster le code que tu as essayé qui ne fonctionne pas.
Où bloques-tu exactement ?
ouverture du fichier text -> streamreader
Ajouter dans la listbox -> listbox.items.add


L'expérience, c'est une connerie par jour, mais jamais la même..
0
Profil bloqué
31 mai 2011 à 09:50
Merci beaucoup de ta réponse alors voilà maintenant je sais lire une ligne:
Voilà mon code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Dim List1 As ListBox
Dim TextLine As String


' Open file.
FileOpen(1, "E:Modif.txt", OpenMode.Input)
' Loop until end of file.
'While Not EOF(1)

' Read line into variable.
TextLine = LineInput(1)
' Print to the console.
'WriteLine(1, TextLine)
MsgBox(TextLine)
'List1.Items.Add(TextLine)
FileClose(1)

'End While
End Sub
End Class

Je voudrais commencer à lire à la ligne 3 et ajouter chaque ligne dans la listbox, mais je bloque, saurais-tu comment faire?
0

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

Posez votre question
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
31 mai 2011 à 10:40
Salut

Une autre façon
Private listitems As New List(Of String)
Private Sub ReadFile()
Dim pathfichier As String
'le chemin du fichier
pathfichier = "E:\test.TXT"
'je lis tout le fichier dans listitems
Try
listitems = System.IO.File.ReadAllLines(pathfichier).ToList
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'copier à partir de la 3 ligne attention la premiere est indexée par 0
For iter = 2 To listitems.Count - 1
ListX.Items.Add(listitems(iter))
Next
End Sub
0
Profil bloqué
31 mai 2011 à 12:17
Voilà donc j'obtient ça comme code
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


' End Sub
'Private Sub ReadFile()
Dim listitems As New List(Of String)
Dim pathfichier As String
Dim List1 As ListBox
'le chemin du fichier
pathfichier = "E:\Modif.TXT"
'je lis tout le fichier dans listitems
Try
listitems = System.IO.File.ReadAllLines(pathfichier).ToList
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
'copier à partir de la 3 ligne attention la premiere est indexée par 0
For iter = 2 To listitems.Count - 1
List1.Items.Add(listitems(iter))
Next
End Sub

Mais j'ai une erreur qui est "Une exception de première chance de type 'System.NullReferenceException' s'est produite dans Line.exe"

Il me dit en débogage quand je reste dessus:
http://imageshack.us/photo/my-images/135/debog.jpg/

Merci de votre aide généreuse.
0
Profil bloqué
31 mai 2011 à 13:27
C'est bon j'avance maintenant j'ai ce code qui fonctionne mais ne fait rien.
Comment faire apparaître la liste dans le programme?
Merci.
0
Profil bloqué
31 mai 2011 à 13:28
 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click


        ' End Sub
        'Private Sub ReadFile()
        Dim listitems As New List(Of String)
        Dim pathfichier As String
        Dim List1 As New ListBox


        'le chemin du fichier 
        pathfichier = "E:Modif.TXT"
        'je lis tout le fichier dans listitems 
        Try
            listitems = System.IO.File.ReadAllLines(pathfichier).ToList
        Catch ex As Exception
            'MessageBox.Show()
            MsgBox(listitems)
        End Try
        'copier à partir de la 3 ligne attention la premiere est indexée par 0 
        For iter = 2 To listitems.Count - 1
            List1.Items.Add(listitems(iter))
        Next
    End Sub

End Class
0
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
31 mai 2011 à 14:09
J'ai du mal expliqué

Place sur ta form ta listbox pour l'exemple
je l'ai nommé listbox1
voila
Public Class Form1
 Private listitems As New List(Of String)
 Private Sub ReadFile()
 
   Dim pathfichier As String
   'le chemin du fichier
        pathfichier = "E:\test.TXT"
        'je lis tout le fichier dans listitems
        Try
            listitems = System.IO.File.ReadAllLines(pathfichier).ToList
        Catch ex As Exception
            'en cas d'exception affiche l'erreur 
            MessageBox.Show(ex.Message)

        End Try
        'copier à partir de la 3 ligne attention la premiere est indexée par 0 
        For iter = 2 To listitems.Count - 1
            listbox1.Items.Add(listitems(iter))
        Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      ReadFile()
    End Sub
End Class
0