Textdatei in Listbox

mafiamix

Mitglied
Hallo,

ich habe jetzt schon mehrmals verschiedene Codes ausprobiert und gegogglet, aber nichts gefunden.
Ich möchte, dass eine Textdatei (.txt) eingelesen wird und der Inhalt dieser Datei dann in einer Listbox angezeigt wird. 1 Zeile in der Textdatei ist also 1 Zeile in der Listbox. Wenn ich also in der Textdatei mehrere Wörter untereinander schreibe, erscheinen diese Wörter untereinander in der Listbox.

Das Einlesen der Datei funktioniert ganz normal und ist ja auch kein Kunststück, aber das Einlesen als Array in die Listbox bereitet Probleme, da ich nicht weiß, wie man eine solche Array bildet (es kommt der Fehler beim folgenden Code, dass ein 1-dimensionaler String nicht als Array verwendet werden kann).

Bisher habe ich es mit dem Code versucht:

Code:
            Dim zeilen() As String = IO.File.ReadAllLines(TextBox1.Text)
            ListBox1.Items.Add(zeilen)

Wie gesagt funktioniert das Einlesen der Datei, jedoch nicht das Einfügen des Dateiinhaltes in die Listbox.
Ich hoffe, dass mir jemand weiterhelfen kann.


Lg,

mafiamix
 
So geht das zum Beispiel, es gibt aber bestimmt noch andere, vielleicht auch bessere Lösungen:

Code:
Imports System.IO

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Zeilen As New List(Of String)

        Using sr As New StreamReader("C:\datei.txt")
            While Not sr.EndOfStream
                Zeilen.Add(sr.ReadLine())
            End While
        End Using

        ListBox1.Items.AddRange(Zeilen.ToArray())
    End Sub
End Class
 
Hallo,

da du nicht geschrieben hast, was denn eigentlich in der ListBox steht, musste ich das erst selbst testen ;)

Benutze anstelle der Funktion Add() die Funktion AddRange() und es geht ;)

MfG
Fabsch
 
Hm, stimmt. Beide Befehle haben die gleiche Wirkung, wenn ich bei meinem Code AddRange benutze, aber leider wird aus dem Textdokument nur die erste Zeile ausgelesen. Geht es auch, dass JEDE Zeile im Dokument ausgelesen wird oder dass man mit Replace(";", vbnewline) einen Strichpunkt bzw. Semikolon als neue Zeile in der Listbox einsetzt? Also sozusagen als neues Item.
 
Hallo,

mit deinem Code, den du gepostet hast, wird die ganze Textdatei ausgelesen, also jede Zeile in jeweils ein Array-Element, und das mit allen Zeilen!

MfG
Fabsch
 
Ah danke. Hab gedacht, dass es nicht funktioniert, weil ich mit SelectItem ein Item markieren wollte und hab diesen Befehl statt SelectIndex ausgeführt.
Danke. :)
 

Neue Beiträge

Zurück