VisualBasic Zeilenumbruch beim Speichern von Richtextbox

TingeltangelBob

Cadet 4th Year
Dabei seit
Aug. 2011
Beiträge
89
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:)
 

TingeltangelBob

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Aug. 2011
Beiträge
89
Gleiches Problem.. Alles in eine Zeile im Editor.
 

easy.2ci

Commodore
Dabei seit
Mai 2006
Beiträge
4.220
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.
 

TingeltangelBob

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Aug. 2011
Beiträge
89
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

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

Zuletzt bearbeitet: (Anhang vergessen :-))

easy.2ci

Commodore
Dabei seit
Mai 2006
Beiträge
4.220
Ich gucks mir morgen im Büro genauer an, hab zuhause kein Visual Studio um ein bißchen zu experimentieren
 

TingeltangelBob

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Aug. 2011
Beiträge
89
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:

vomaufgang

Cadet 2nd Year
Dabei seit
Feb. 2012
Beiträge
28
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:

TingeltangelBob

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Aug. 2011
Beiträge
89
Einwandfrei! :D Vielen Dank!
 
Top