ListView mit Textdatei füllen

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von DogMaster.

    ListView mit Textdatei füllen

    Hi
    ich habe ein ListView mit 3 Spalten und ich habe eine Textdatei deren Aufbau so aussieht...

    Text a1°Text a2°Text a3
    Text b1°Text b2°Text b3
    Text c1°Text c2°Text c3

    Ich möchte nun das die Textdatei Zeile für Zeile ausgelesen wird.
    In jeder Zeile soll bei dem Zeichen ° gesplittet werden und ins ListView eingetragen werden.

    Ich habe mir dank Google schon Etwas zusammen kopiert aber es Funktioniert nicht.
    In der Zeile "str(1) = fstrArr(1)" bekomm ich die Meldung: Index out of Range

    Ich wäre echt froh wenn mir jemand hilft das Problem zu lösen.
    Und bitte kein Fachchinesisch ich lerne nämlich noch.


    VB.NET-Quellcode

    1. Public Sub ListView_Read(ByVal ListView As ListView, _
    2. ByVal sFile As String)
    3. Dim str(3) As String
    4. Dim itm As ListViewItem
    5. Dim fstr As String
    6. Dim fstrArr() As String
    7. Dim oStream As IO.StreamReader
    8. Dim sLine As String
    9. Dim oFile As New IO.FileInfo(sFile)
    10. If oFile.Exists() = True Then
    11. oStream = New IO.StreamReader(sFile)
    12. Do
    13. sLine = oStream.ReadLine()
    14. If IsNothing(sLine) Then Exit Do
    15. fstr = sLine
    16. fstrArr = fstr.Split("°")
    17. str(0) = fstrArr(0)
    18. str(1) = fstrArr(1)
    19. str(2) = fstrArr(2)
    20. itm = New ListViewItem(str)
    21. ListView1.Items.Add(itm)
    22. Loop
    23. oStream.Close()
    24. End If
    25. End Sub
    Viel einfacher wäre das ganze wenn du mit einer for each schleife den array Io.File.ReadAllLines durchgehen wrdest
    und dann das ganze dann mit

    VB.NET-Quellcode

    1. dim dataarray() as string = zeile.split("dein zeichen")

    Splitten und mit das item erstellen

    VB.NET-Quellcode

    1. dim itm As ListviewItem = lv.add(dataarry(0))itm.subitems.add(dataarray(1))itm.subitems.add(dataarray(2))

    Und befüllen
    Hi
    danke für deine Antwort. Ich habe jetzt herausgefunden warum mein Code nicht funktionierte.
    Zum splitten habe ich das Zeichen ° benutzt und scheinbar mag VB das Zeichen nicht.
    Ich habe es durch ein Anderes ersetzt und jetzt läuft es.
    Moin,
    ich versuche zwei spallten zufüllen... klappt aber nit richtig... Alles kommt in die erste spalte.
    PLS HELP!!!

    VB.NET-Quellcode

    1. For Each zeile As String In openstring
    2. Dim txtarray() As String
    3. txtarray = zeile.Split(":")
    4. ListView1.Items.Add(txtarray(0))
    5. ListView1.Items.Add(txtarray(1))
    6. Next
    7. End If