Änderungen an einer Richtextbox in die Ursprüngliche Datei übernehmen?

  • VB.NET
  • .NET (FX) 4.0

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

    Änderungen an einer Richtextbox in die Ursprüngliche Datei übernehmen?

    Hey!
    Ich habe ein wenig herum gespielt und geschaut, dass ich ein Programm schreibe in dem ich alle Werte einer Textbox durch die Werte einer anderen Textbox ersetze. Die einzige Sache ist, dass ich gerade nicht weiß, wie ich die geänderten Daten dauerhaft in die Datei übertrage. Es soll halt flexibel auf verschiedene Textdateien zugreifen können.

    Das Problem; Wenn es immer die Gleiche Datei wäre, dann könnte ich es halt selbst fertig machen. Es darf halt in der Hinsicht nicht "hardcoded" sein. Hier einmal das was ich bisher habe;

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Btn_LoFi_Click(sender As Object, e As EventArgs) Handles Btn_LoFi.Click
    3. If (OpenFileDialog1.ShowDialog = DialogResult.OK) Then
    4. RTB_FiLo.Text = My.Computer.FileSystem.ReadAllText(OpenFileDialog1.FileName)
    5. End If
    6. End Sub
    7. Private Sub Btn_Srch_Click(sender As Object, e As EventArgs) Handles Btn_Srch.Click
    8. If RTB_FiLo.Text.Contains(Txtb_srch.Text) Then
    9. RTB_FiLo.SelectionStart = RTB_FiLo.Find(Txtb_srch.Text)
    10. RTB_FiLo.SelectionLength = Txtb_srch.Text.Length
    11. RTB_FiLo.Focus()
    12. End If
    13. End Sub
    14. Private Sub Btn_Rep_Click(sender As Object, e As EventArgs) Handles Btn_Rep.Click
    15. If RTB_FiLo.Text.Contains(Txtb_srch.Text) Then
    16. RTB_FiLo.Text = RTB_FiLo.Text.Replace(Txtb_srch.Text, Txtb_Repl.Text)
    17. End If
    18. End Sub
    19. End Class


    Bei dem letzten Teil wo ich die Richtextbox vom Inhalt her verändere müsste ich die Geschichte auch in der Datei, welche ich ja am Anfang öffne irgendwie übertragen können oder nicht?
    Ja... Es ist schrecklich... Und wie es erst aussieht... jaaaaa...
    Aber immerhin funktioniert der Code... Vorerst...
    Na, denn umgekehrten Weg des Einlesevorgangs verwenden

    SithLady schrieb:

    RTB_FiLo.Text = My.Computer.FileSystem.ReadAllText(OpenFileDialog1.FileName)

    Es gibt auch WriteAllText.
    Aber ich würde nicht die Methoden aus ​My.Computer.FileSystem verwenden, sondern die aus dem System.IO.File Namespace.
    docs.microsoft.com/de-de/dotne…stem.io.file.writealltext
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Mit dem Namespace bin ich nicht so vertraut um es so hinzubekommen, dass er eben nicht einfach stumpf einen Pfad aller "C:\Ordner\Datei.txt" folgt. Gerade der Teil muss wie im ersten Befehl sein. Das ist das einzige Problem. Hardcoded wäre es easy und kein Problem :)
    Ja... Es ist schrecklich... Und wie es erst aussieht... jaaaaa...
    Aber immerhin funktioniert der Code... Vorerst...
    @SithLady Du kanst auch die Schreib- und Lese-Funktionalität der RTB selbst nutzen.
    Falls Du formatierten Text hast, wird dann die Formatierung mit gespeichert und geladen:

    VB.NET-Quellcode

    1. RichTextBox1.SaveFile("PATH", RichTextBoxStreamType.PlainText)
    2. RichTextBox1.SaveFile("PATH", RichTextBoxStreamType.RichText)
    3. RichTextBox1.LoadFile("PATH", RichTextBoxStreamType.PlainText)
    4. RichTextBox1.LoadFile("PATH", RichTextBoxStreamType.RichText)
    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!