StreamReader

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von toto.

    Hallo,
    bin wieder damit mit eine Frage.
    Ich habe eine csv Datei, die so aufgebaut ist:
    1..;....;....;.......
    1..;....;....;.......
    1..;....;....;.......
    2..;....;....;.......
    2..;....;....;.......
    2..;....;....;.......
    usw.

    mit diesem Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim path As String = Application.StartupPath & "\Zahlen_LVW.csv"
    2. Dim sr As StreamReader
    3. Dim Element() As String
    4. Dim Line As String
    5. Dim XXX As String = TextBox1.Text
    6. If XXX = Nothing Then Exit Sub
    7. ListView1.Items.Clear()
    8. sr = New StreamReader(Path, System.Text.Encoding.Default)
    9. sr.BaseStream.Seek(0, SeekOrigin.Begin)
    10. For Each Str As String In Liste
    11. If Str.Contains(XXX) Then
    12. Line = sr.ReadLine()
    13. Element = Split(Line, ";")
    14. Dim lvi As ListViewItem = New ListViewItem(Element(0))
    15. lvi.SubItems.Add(Element(1))
    16. lvi.SubItems.Add(Element(2))
    17. lvi.SubItems.Add(Element(3))
    18. lvi.SubItems.Add(Element(4))
    19. lvi.SubItems.Add(Element(5))
    20. lvi.SubItems.Add(Element(6))
    21. lvi.SubItems.Add(Element(7))
    22. lvi.SubItems.Add(Element(8))
    23. lvi.SubItems.Add(Element(9))
    24. lvi.SubItems.Add(Element(10))
    25. lvi.SubItems.Add(Element(11))
    26. lvi.SubItems.Add(Element(12))
    27. lvi.SubItems.Add(Element(13))
    28. lvi.SubItems.Add(Element(14))
    29. ListView1.Items.Add(lvi)
    30. End If
    31. Next


    lese ich die csv in ein ListView ein.
    Beim Button_Click erscheinen auch die Item die in der TextBox1 definiert sind.
    Bein ändern der Text in der TextBox, bleiben leider die item gleich.

    Also wenn in der TextBox 1 schreibe, im ListView sind alle einträge die 1 entalten,
    wenn ich 2 schreibe, ändert sich nichts, bleiben die Einträge mit 1.

    Ich bitte um ein Tipp.

    lg

    toto
    lg toto

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „toto“ ()

    Bein ändern der Text in der TextBox, bleiben leider die item gleich.

    Textbox inhalt dem listview item zuweisen


    Also wenn in der TextBox 1 schreibe, im ListView sind alle einträge die 1 entalten,
    wenn ich 2 schreibe, ändert sich nichts, bleiben die Einträge mit 1.

    liest du deine csv ein mal oder mehrmals ?
    Nur ein kleiner Tip zu ListView:
    Anstatt mit .SubItems.Add alle SubItem einzeln hinzuzufügen, kannst Du auch ein Array in den Konstruktor von ListViewItem packen. Beispiel:

    VB.NET-Quellcode

    1. For Each zeile As String In IO.File.ReadAllLines("pfad.csv")
    2. Dim zellen() As String = zeile.Split(";"c)
    3. If zellen.Length <= ListView1.Columns.Count Then
    4. Dim itm As New ListViewItem(zellen)
    5. ListView1.Items.Add(itm)
    6. Else
    7. MessageBox.Show("Zeile passt nicht in ListView.")
    8. End If
    9. Next