Text einer RichTextBox aus einer Datei auslesen und übertragen?

  • VB.NET

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

    Text einer RichTextBox aus einer Datei auslesen und übertragen?

    Hallöchen ;)

    Ich hätte da eine Frage, umzwar:

    Ich würde gerne den Text einer Datei (.txt) auslesen und in einer RichTextBox anzeigen lassen.

    Nachdem dies geschehen ist, soll man die RichTextBox bearbeiten können, sprich den Ausgelesenen Inhalt verändern.

    Mit einem Buttonklick soll das ganze dann in die selbe Datei wieder gespeichert werden.

    Wie funktioniert das ganze?

    Grüße Jookooh
    Zum .txt auslesen solltest du dir den StreamReader angucken.

    Zum RichTextBox bearbeiten kannst du dir ja die Methoden und Eigenschaften durchlesen

    Zum Text in .txt speichern solltest du dir den StreamWriter angucken.

    Damit solltest du es schaffen ;)
    Alles klar,

    Soweit bin ich jetzt schon:

    VB.NET-Quellcode

    1. Dim Reader As New StreamReader(Application.StartupPath() & "\data.json")
    2. RichTextBox2.Text = Reader.ReadToEnd()
    3. Reader.Close()
    4. Dim Readera As New StreamReader(Application.StartupPath() & "\device.properties")
    5. RichTextBox1.Text = Reader.ReadToEnd()
    6. Reader.Close()


    Es funktioniert jedoch nur der Reader mit ("\data.json"), bei ("\device.properties")

    Gibt er diesen Fehler aus: "Von einem geschlossenen TextReader kann nicht gelesen werden."

    Wieso und wie kann ich das beheben?
    Es sollten btw auch die normalen Methoden der ​File-Klasse im Normalfall ausreichen. Hinter denen steckt auch nicht viel anderes.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hmh okay, jedoch ist die Datei in ".properties" vorgegeben, daher muss ich es so machen.

    VB.NET-Quellcode

    1. Dim Reader As New StreamReader(Application.StartupPath() & "\data.json")
    2. RichTextBox2.Text = Reader.ReadToEnd()
    3. Reader.Close()
    4. Dim Readera As New StreamReader(Application.StartupPath() & "\device.properties")
    5. RichTextBox1.Text = Reader.ReadToEnd()
    6. Reader.Close(


    Mit dem Durcheinander meinst du warscheins, dass ich im 2. nochmals "Reader.ReadToEnd" schreibe, dies sollte ich vielleicht in "Readera.ReadToEnd" umschreiben.
    Werde ich auch jetzt einmal testen, und in einem Edit dieses Posts erläutern ob es dann geht.

    EDIT: Alles klar, nach dieser änderung hat es nun dann auch funktioniert. Danke für die Hilfe! Und danke für den Tipp mit SteamReader ;) Ich hätte womöglich wieder Systems.IO verwendet ;) Aber so geht es einfacher wie ich feststelle :D
    Nur eine kleine Ergänzung:
    Die Richtextbox hat eine eigene Sub zum laden und speichern einer Datei. Damit kannst du den Text auch als RTF (also mit Formatierung) speichern.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. RichTextBox1.LoadFile(dateipfad, RichTextBoxStreamType.PlainText) 'Als Textdatei laden
    3. End Sub
    4. Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
    5. RichTextBox1.SaveFile(dateipfad, RichTextBoxStreamType.PlainText) 'Als Textdatei speichern
    6. End Sub
    Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

    43232069737420636f6f6c21
    @Jookooh Du hast doch die Lösung in einem Deiner vielen Threads zum selben Thema schon mehrfach bekommen.
    Bist Du lernresistent?
    Bist Du beratungsresistent?
    X(
    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!