Text in html Datei suchen und ersetzen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Nordhesse.

    Text in html Datei suchen und ersetzen

    Hallo,

    ich versuche gerade ein Programm zu schreiben, welches in allen html Dateien in einem Verzeichnis einen bestimmten Text suchen und ersetzen soll.
    Die Wortpaare befinden sich in einem DataGridView.
    Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim temp As String = Application.StartupPath & "\Temp\"
    2. For Each htmlfile As String In System.IO.Directory.GetFiles(temp, "*.html")
    3. Dim texttemp() As String = IO.File.ReadAllLines(htmlfile)
    4. For Each line As String In texttemp
    5. For Each row As DataGridViewRow In DGV.Rows
    6. line.Replace(row.Cells.Item(0).ToString, row.Cells.Item(1).ToString)
    7. Next
    8. Next
    9. IO.File.WriteAllLines(htmlfile, texttemp)
    10. Next



    Es existiert eine html Datei mit dem Inhalt 1, der durch 2 ersetzt werden soll, allerdings passiert nichts, es kommt nicht einmal eine Fehlermeldung.
    Auch wenn ich die Datei direkt angebe funktioniert es nicht.
    Du musst den veränderten String zurückspeichern.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim temp As String = Application.StartupPath & "\Temp\"
    3. Dim ll As New List(Of String)
    4. For Each htmlfile As String In System.IO.Directory.GetFiles(temp, "*.html")
    5. Dim texttemp() As String = IO.File.ReadAllLines(htmlfile)
    6. For Each line As String In texttemp
    7. For Each row As DataGridViewRow In DGV.Rows
    8. line = line.Replace(row.Cells.Item(0).ToString, row.Cells.Item(1).ToString)
    9. Next
    10. ll.Add(line)
    11. Next
    12. IO.File.WriteAllLines(htmlfile, ll.ToArray)
    13. Next
    14. 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!
    Danke, das hat geholfen.

    Es gab noch einen zweiten Fehler, den ich aber selbst gefunden habe (ausnahmsweise ^^)

    Die Zeile
    line = line.Replace(row.Cells.Item(0).ToString, row.Cells.Item(1).ToString)

    musste mit

    line = line.Replace(row.Item(0).ToString, row.Item(1).ToString)

    und dem entsprechenden DataSet ersetzt werden.



    Schönen Abend.