Zeilenumbruch ??

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Acr0most.

    Zeilenumbruch ??

    Moin!

    ich habe ein RichText-Element und schreibe dessen Text per

    VB.NET-Quellcode

    1. Dim fs As FileStream = New FileStream(FileName, FileMode.Create, FileAccess.Write)
    2. Dim w As StreamWriter = New StreamWriter(fs)
    3. w.Write(rtf_message.Text & vbCrLf)
    4. w.Close()
    5. fs.Close()


    in eine Datei.

    Wird diese mit dem Windowsstandard Texteditor geöffnet, dann steht der Text hintereinander weg - ohne Umbrüche!

    Öffne ich das in Notepad++ ist alles OK.

    Kann mir das einer von Euch erklären und wie kann ich das bei einem RichText in Griff bekommen?

    Gruß Jan
    vbCrLf fügt nur einen einfachen Zeilenumbruch (\n) hinzu, der Texteditor verlangt aber einen Carriage-Return (\r) gefolgt von einem Zeilenumbruch (\n). Notepad++ interpretiert bereits einen einfachen Zeilenumbruch.
    Du kannst das am einfachsten lösen, indem du StreamWriter.WriteLine anstatt StreamWriter.Write verwendest.
    @jan99 Genau so ist RichText definiert.
    Wenn Du die Zeilen explizit haben willst, nimm rtf_message.Lines.
    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!

    X-Zat schrieb:

    vbCrLf fügt nur einen einfachen Zeilenumbruch (\n) hinzu, der Texteditor verlangt aber einen Carriage-Return (\r) gefolgt von einem Zeilenumbruch (\n). Notepad++ interpretiert bereits einen einfachen Zeilenumbruch.
    Du kannst das am einfachsten lösen, indem du StreamWriter.WriteLine anstatt StreamWriter.Write verwendest.


    Was denkst du denn wofür das Cr und Lf steht in VbCrLf?
    Die Konstante beinhalte Carriage Return gefolgt von einem Linefeed. Das Problem ist das die Zeilenenden in der Richtextbox nur ein Lf sind.
    Die einfachste Lösung wäre einfach eine Textbox mit MultiLine zu nehmen. Dort wird eine Zeilenumbruch auch als CrLf gesetzt oder du schreibst die Richtextbox nicht als Ganzes sondern Zeile für Zeile und fügst VbCrLf selber ein.
    Das ist meine Signatur und sie wird wunderbar sein!
    Ähhhhm...

    jan99 schrieb:

    w.Write(rtf_message.Text & vbCrLf)


    Ich denke jan99 meint hier Zeilenumbrüche innerhalb des rtf_message.Text-Strings.
    Das hat hier mit dem vbCrLf nichts zu tun.

    LG Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup: