user2438307
user2438307

Reputation: 1

How do you read a file and display in listbox in VB.NET?

I was trying to display data from file in a list saved on the hard drive by clicking on a button, however I'm not sure on haw to do it properly:

Private Sub btnListRecipes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListRecipes.Click
    Dim TextLine As String
    If System.IO.File.Exists(Filename) = True Then
        Dim RecipeReader As New System.IO.StreamReader(Filename)
        Do While RecipeReader.Peek() <> -1
            TextLine = TextLine & RecipeReader.ReadLine() & vbNewLine
        Loop
        lstRecipes.Text = TextLine.Text
    Else
        MsgBox("File Does Not Exist")
    End If
End Sub

I would be really grateful for assistance :D

Upvotes: 0

Views: 1822

Answers (3)

mmr
mmr

Reputation: 516

you can do this:

Imports System
Imports System.IO

Public Class Form1

Public Shared listTXT, listOfTxt, listOfTxtFile As New List(Of String)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim path As String = "C:\myDirectory\"

    Dim parentinfo As New DirectoryInfo(path)

    ' Store Text file name in a list
    For Each txtFile As FileSystemInfo In parentinfo.GetFileSystemInfos()
        listTXT.Add(txtFile.Name)
    Next

    ' Store Path of Text file in a list
    For noOfTxtFile = 0 To listTXT.Count - 1

        Dim pathOfFile As String = path & listTXT(noOfTxtFile)
        listOfTxtFile.Add(pathOfFile)

        Dim obj As System.IO.StreamReader
        obj = System.IO.File.OpenText(pathOfFile)

        While Not obj.EndOfStream
            listOfTxt.Add(obj.ReadLine)
        End While

    Next

    Dim lineOfTxt As Integer
    Dim txt As String

    For lineOfTxt = 0 To listOfTxt.Count - 1
        txt = listOfTxt(lineOfTxt)
        ListBox1.Items.Add(txt)
    Next
End Sub
End Class

Upvotes: 0

user2366842
user2366842

Reputation: 1231

Use:

lstRecipes.Items.Add(TextLine.Text)

More specifically before it jumps to the next item in the list, so this would go right after your assignment of TextLine.

Upvotes: 0

Joel Coehoorn
Joel Coehoorn

Reputation: 415600

Private Sub btnListRecipes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListRecipes.Click
    Try
        lstRecipes.AddRange(File.ReadAllLines(FileName))
    Catch
        MsgBox("Unable to read file")
    End Try
End Sub

Upvotes: 2

Related Questions