VisualBasic Zeilenumbruch beim Speichern von Richtextbox

Registriert
Aug. 2011
Beiträge
151
hallo,
ich bräuchte mal eure Hilfe. Ich habe mit Visual Basic Studio 2010 ein kleines Programm geschrieben. Unter Anderem wird Text in ein Richtextbox ausgegeben:

Code:
 Function text_anhaengen(ByVal text As String) As String
        RichTextBox1.AppendText(text & Chr(13))
        If CheckBox1.Checked = True Then RichTextBox1.ScrollToCaret()
        text = ""   'inhalt der Variable text löschen
    End Function

Später soll der Text als Textdatei gespeichert werden:
Code:
    Private Sub Btn_speichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_speichern.Click
        Dim SaveFile As New SaveFileDialog
        SaveFile.FileName = " "
        SaveFile.Filter = "Text Files (*.txt) |*.txt"
        SaveFile.ShowDialog()
        Try
            Dim Write As New System.IO.StreamWriter(SaveFile.FileName)
            Write.Write(RichTextBox1.Text)
            Write.Close()
        Catch ex As Exception
        End Try
    End Sub

Das problem ist dass der gespeicherte Text im Windows Editor in eine Zeile erscheint ohne Zeilenumbruch. Mit Notepad++ dagegen wird richtig angezeigt. Ich vermutte dass der Chr(10) am Ende der Zeile fehlt.

es wäre schön wenn mir da jemand helfen könnte:)
 
Gleiches Problem.. Alles in eine Zeile im Editor.
 
Wirds in der Textbox denn in 2 Zeilen ausgegeben? Wirds eventuell nur in 2 Zeilen ausgegeben, weil das Zeilenende des Windows Forms zu Ende ist?


Wenn du speicherst... kannst sein, daß du beim Text anhängen eben kein vbcrlf vor den Text setzt? Du hängst ja Text an Text. Fehlt einfach das vbcrlf bevor du deinen Text anhängst?


Ist verwirrend das so "auf Papier" zu beschreiben, hoffe du merkst worauf ich hinaus will.
 
easy.2ci schrieb:
Wirds in der Textbox denn in 2 Zeilen ausgegeben? Wirds eventuell nur in 2 Zeilen ausgegeben, weil das Zeilenende des Windows Forms zu Ende ist?

Die Box ist ausreichend groß. Das kann nicht passieren. Hab mal ein Bild davon angehängt

easy.2ci schrieb:
Wenn du speicherst... kannst sein, daß du beim Text anhängen eben kein vbcrlf vor den Text setzt? Du hängst ja Text an Text. Fehlt einfach das vbcrlf bevor du deinen Text anhängst?

Das habe ich ehrlich gesagt nicht verstanden...
 

Anhänge

  • vb.jpg
    vb.jpg
    63,7 KB · Aufrufe: 469
Zuletzt bearbeitet: (Anhang vergessen :-))
Ich gucks mir morgen im Büro genauer an, hab zuhause kein Visual Studio um ein bißchen zu experimentieren
 
ok. Danke!

Edit:
bin der Lösung ein Stück näher gekommen:
Code:
    Private Sub Btn_speichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_speichern.Click
        Dim SaveFile As New SaveFileDialog
        SaveFile.FileName = " "
        SaveFile.Filter = "Text Files (*.txt) |*.txt"
        SaveFile.ShowDialog()
        Dim Write As New System.IO.StreamWriter(SaveFile.FileName)

        For i As Long = 0 To RichTextBox1.Lines.Count - 1
                Write.WriteLine(RichTextBox1.Lines(i)) ' & vbCrLf)
        Next
        Write.Close()
    End Sub

Die Frage ist wie leistungsfähig das jetzt ist, weil der Text jetzt zeilenweise in Datei kopiert wird und der Text im Richttextbox bis zu 64.000 Zeilen haben kann.
 
Zuletzt bearbeitet:
EDIT: Hier ist die richtige Lösung:

Sie war einfacher als gedacht.

Verwende folgende Methode zum Speichern des Inhalts der RichTextBox anstatt des StreamWriters:

Code:
richTextBox1.SaveFile(SaveFile.FileName, RichTextBoxStreamType.PlainText)

Und der Vollständigkeit halber der MSDN-Eintrag:

http://msdn.microsoft.com/en-us/library/e4a710b1.aspx
 
Zuletzt bearbeitet:
Einwandfrei! :D Vielen Dank!
 

Ähnliche Themen

Zurück
Oben