Zeilen in TextDatei löschen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Zeilen in TextDatei löschen

    Ich habe ein Textdokument bei dem regelmäßig 12 Zeilen Code hinzugefügt werden. Die erste der 12 Zeilen ist ein Kommentar, was zur Übersicht und als "Überschrift" dient. Nun möchte ich per Buttonklick diese Überschrift und die 11 weiteren Zeilen darunter löschen.

    Um die Zeile mit der richtigen Überschrift zu finden benutze ich folgenden Code:

    Quellcode

    1. Try
    2. Dim lines() = IO.File.ReadAllLines("index.html")
    3. For i = 0 To lines.Length - 1
    4. If lines(i) = "<!--" + ListBox1.Items(ListBox1.SelectedIndex).ToString.Substring(0, ListBox1.Items(ListBox1.SelectedIndex).ToString.Length - 4) + "-->" Then
    5. lines(i) = ""
    6. Exit For
    7. End If
    8. Next
    9. IO.File.WriteAllLines("index.html", lines)
    10. Catch ex As Exception
    11. MsgBox("File not found!")
    12. End Try



    Jedoch weiß ich nicht wie ich den Löschvorgang anspreche :/ Ideen?

    Pi77Bull schrieb:

    Löschvorgang
    So:

    VB.NET-Quellcode

    1. Dim lines() = IO.File.ReadAllLines("index.html")
    2. For i = 0 To lines.Length - 1
    3. If lines(i) = "<!--" + ListBox1.Items(ListBox1.SelectedIndex).ToString.Substring(0, ListBox1.Items(ListBox1.SelectedIndex).ToString.Length - 4) + "-->" Then
    4. For j = 0 To 11
    5. lines(i + j) = ""
    6. Next
    7. Exit For
    8. End If
    9. Next
    10. IO.File.WriteAllLines("index.html", lines)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Pi77Bull schrieb:

    viele Leerzeilen
    lassen wir dann einfach weg:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim lines() = IO.File.ReadAllLines("index.html")
    3. Dim list2 = New List(Of String)
    4. For i = 0 To lines.Length - 1
    5. If lines(i) = "<!--" + ListBox1.Items(ListBox1.SelectedIndex).ToString.Substring(0, ListBox1.Items(ListBox1.SelectedIndex).ToString.Length - 4) + "-->" Then
    6. i += 11 ' oder 12, musst Du testen
    7. Else
    8. list2.Add(lines(i))
    9. End If
    10. Next
    11. IO.File.WriteAllLines("index.html", list2.ToArray)
    12. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!