RichTextBox inhalt

  • VB.NET

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

    RichTextBox inhalt

    Hallo zusammen,

    ich suche nach einer Möglichkeit den Inhalt einer RichTextBox in einer Variablen zu schreiben, bzw. in einer Textdatei in einer einzigen Zeile zu schreiben, auch wenn der Text in der RichTextBox untereinander steht.
    Wenn ich diese dann wieder Lade soll der Text aus einer einzigen Zeile in der Textdatei wieder untereinander in der RichTextBox angezeigt werden.

    Viele Grüße
    Technisch gesehen steht in der Datei ja alles in einer Zeile, lediglich die Texteditoren interpretieren halt CR und LF als neue Zeile und zeigen es entsprechend an...
    Um es zu erreichen wirst du diese Zeichen entsprechend ersetzen müssen, sodass du beim laden CR und LF wieder einfügen kannst. Dann zeigen es Editoren als eine Zeile an.

    Dennoch die Frage, warum ist es wichtig, dass die Darstellung der Daten außerhalb deines Programmes auf einer Zeile erfolgt?

    EaranMaleasi schrieb:

    Dennoch die Frage, warum ist es wichtig, dass die Darstellung der Daten außerhalb deines Programmes auf einer Zeile erfolgt?



    Das hat mit der Art der Speicherung in meinem Programm zu tun, dort wird ein Datensatz in einer Textdatei immer untereinander gespeichert, der Text in der RichTextBox gehört zu diesem Datensatz, darum möchte ich es auch in einer Zeile haben, da sonst beim Einlesen ein durcheinander kommt wegen der Extrazeilen.

    Ich könnte Theoretisch auch für jeden Inhalt in einem RichTextBox eine eigene Datei anlegen was viel einfacher wäre, aber dann hätte ich bei 1000 Datensätze auch 1000 Dateien, das möchte ich dadurch verhindern, weis leider auch nicht wie ich es anders machen soll.

    Hier ein link zu meinem Speicherbeispiel.
    In Datenbank schreiben
    schreibst du den text in der richtextbox selbst untereinander? also machst du selbst die neue zeile? wenn ja:
    guck mal noch was in richtextbox1.text für ein text steht. bei manuellen absätzen sollte da ein vbcrlf oder soetwas mit dabei stehen. anschließend kannst du vor dem speichern folgendes machen:

    VB.NET-Quellcode

    1. ​Dim speicherText As String = RichTextBox1.Text.Replace(vbCrLf, "<ein beliebiges zeichen, z.B. |>")

    dann speichern und beim laden wieder

    VB.NET-Quellcode

    1. ​RichTextBox1.Text = ladeText.Replace("|", vbCrLf)
    Das hab ich lange Zeit auch gemacht. Das Problem ist dabei natürlich, dass Du dem User immer mindestens ein Zeichen verbieten musst. Es stellt sich die Frage, ob es nicht grundsätzlich effektiver wäre, die Persistierung anzupassen und z.B. XML herzunehmen. Oder wird die gespeicherte Textdatei von anderen Programmen oder gar anderen Benutzern direkt genutzt?
    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.

    B4dP2o schrieb:

    schreibst du den text in der richtextbox selbst untereinander? also machst du selbst die neue zeile? wenn ja:
    guck mal noch was in richtextbox1.text für ein text steht. bei manuellen absätzen sollte da ein vbcrlf oder soetwas mit dabei stehen. anschließend kannst du vor dem speichern


    Ja, ich mache selber den den Absatz, leider steht aber weder in der RichTextBox selber noch in der datei kein "vbcrlf" oder sonstiges drin.
    Ich bin da etwas Ratlos wie ich weiter machen soll.
    vbCrLf = Zeilenumbruch + zurück zum Anfang der Zeile. Das Zeichen wirst Du im Editor nicht finden, da der das als genaus das interpretiert/anzeigt: Zeilenumbruch + zurück zum Anfang der Zeile
    Wie schon geschrieben wurde: vbCrLf durch ein gewünschtes Zeichen ersetzen oder anders abspeichern.
    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.