Text Editor mit .rtf und RichTextBox sowie SaveFileDialog programmieren

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

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

    Text Editor mit .rtf und RichTextBox sowie SaveFileDialog programmieren

    Hallo Leute,

    zunächst wünsche ich allen ein gutes, erfolgreiches Neues Jahr 2024

    Ich hoffe, ich hab jetzt alles richtig erstellt? Was das Forum angeht.

    Vielleicht hat einer eine Idee?

    Ich benutze Vbnet Visual Basic und Visual Studio 2022

    Ich möchte einen kleinen Texteditor programmieren. Mit normalen .txt Dateien funktioniert alles prima,
    nun, habe ich die Idee, dass es nett sein könnte, auch mit formatiertem Text, also .rtf zu arbeiten, das funktioniert soweit auch schon.

    Aber immer nur für den gesamten Text. Es gelingt mir nicht, wie in einer Word Datei, die Zeilen, Buchstaben einzeln zu formatieren und zu speichern.
    Irgendwo ist noch ein Haken?

    Ich speichere mit savefiledialog formatierten Text aus einer richtextbox als .rtf datei.
    Soweit funktioniert auch alles fein. Ich kann die Formatierung mit Openfiledialog auch wieder öffnen, bis hier hin, ist alles schick.

    Ich hoffe, ich hab mich verständlich ausgedrückt und alle Infos geliefert.

    Das Beispiel bezieht sich jetzt natürlich nur auf .rtf Dateien, nicht auf .txt Dateien, die funktionieren ja schon einwandfrei.

    VB.NET-Quellcode

    1. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    2. Dim saveFileDialog As New SaveFileDialog()
    3. ' Hier werden die Eigenschaften von SaveFileDialog definiert, für mich als Info
    4. saveFileDialog.Filter = "RTF-Dateien (*.rtf)|*.rtf"
    5. saveFileDialog.Title = "Speichern Sie den formatierten Text als RTF-Datei"
    6. saveFileDialog.FileName = ""
    7. ' Wenn der Benutzer auf die Schaltfläche Speichern klickt, speichert er den Inhalt einer RichTextBox in eine RTF-Datei, für mich als Info
    8. If saveFileDialog.ShowDialog() = DialogResult.OK Then
    9. Dim lines() As String = RichTextBox1.Text.Split(vbCrLf)
    10. For i As Integer = 0 To lines.Length - 1
    11. Dim lineRichTextBox As New RichTextBox()
    12. lineRichTextBox.Rtf = RichTextBox1.SelectedRtf
    13. System.IO.File.AppendAllText(saveFileDialog.FileName, lineRichTextBox.Rtf)
    14. Next
    15. End If
    16. End Sub


    Thema verschoben; Das Thema wird automatisch dort erstellt, wo man sich befindet, wenn man auf [✱ Neues Thema] klickt. ~VaporiZed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „joha2017“ ()

    joha2017 schrieb:

    zunächst wünsche ich allen ein gutes, erfolgreiches Neues Jahr 2023
    Ööh, danke. Weiß ja nicht, ob Du in letzter Zeit vielleicht etwas zu lange geschlafen hast, aber wir haben bereits 2024.

    Die RichTextBox kann selber Daten in eine Datei speichern (RichTextBox1.SaveFile). Reicht Dir die Info bereits?

    btw: Gib Deinen Controls aussagekräftige Namen, damit Du beim Lesen gleich weißt, was z.B. beim Klick von Button4 genau passieren soll. Button4 ist da nicht sonderlich selbstsprechend. Controlbenennung ist ein sinnvolle Aufgabe.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Upsi, ja stimmt, 2024, hast recht,*Rofl*. Habs geändert.

    Danke für die Info, so ganz komm ich noch nicht klar, könnte es an dem .AppendAlltext Befehl liegen?

    Umbenannt habe ich noch nicht,
    da ich noch verschiedene Sachen ausprobiere. Sonst hast du natürlich recht.
    Naja, SaveFile speichert den Inhalt der RichTextBox in einer RTF-Datei. Was willst Du mehr? Deine Zeilen#13-#18 verschwinden damit komplett.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @joha2017 Frag mal Frau Google nach RichTextBoxEx, da gibt es mehrere interessante Ansätze.
    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!