Text an txt datei weitergeben.

  • VB.NET

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

    Text an txt datei weitergeben.

    Hallo.
    Ich gebe einen Text aus eine Richtextbox an eine Textdatei weiter.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim sfd As New SaveFileDialog
    With sfd
    .Filter = "Textdateien (*.txt)|*.txt"
    .ShowDialog()
    IO.File.WriteAllLines(.FileName, RichTextBox1.Lines)
    End With
    End Sub

    Jetzt habe ich aber noch 4 weiter richtextboxen in dieser form.
    Ich hätte gerne das die texte der 5 textboxen in "eine" Textdatei übergeben werden.
    Am besten wäre es wenn die texte in der textdatei jeweils eine zeile abstand bekommen und die überschrift der Textbox (Layer) bei dem jeweiligen text steht.



    Danke schonmal :)
    Nutze den StreamWriter()
    Da kannst Du in Ruhe alle Deine RTBs reinschreiben:

    VB.NET-Quellcode

    1. Using sw As New IO.StreamWriter(path)
    2. sw.Write(Rtb1.Text)
    3. sw.Write(vbLf)
    4. sw.Write(Rtb2.Text)
    5. sw.Write(vbLf)
    6. sw.Write(Rtb3.Text)
    7. sw.Write(vbLf)
    8. ' ...
    9. End Using
    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!
    Ich habe ein komplettes Beispiel gemacht. Mit Absicht ohne Kommentar ;)

    VB.NET-Quellcode

    1. 'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. ' Dim rtbx As New List(Of RichTextBox)
    3. ' If CheckBox1.Checked Then rtbx.Add(RichTextBox1)
    4. ' If CheckBox2.Checked Then rtbx.Add(RichTextBox2)
    5. ' If CheckBox3.Checked Then rtbx.Add(RichTextBox3)
    6. ' If CheckBox4.Checked Then rtbx.Add(RichTextBox4)
    7. ' If CheckBox5.Checked Then rtbx.Add(RichTextBox5)
    8. ' Using dlg As New SaveFileDialog
    9. ' dlg.Filter = "Textdateien (*.txt)|*.txt"
    10. ' If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
    11. ' Me.SaveRichtextboxContent(dlg.FileName, rtbx.ToArray)
    12. ' End If
    13. ' End Using
    14. 'End Sub
    15. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    16. Using dlg As New SaveFileDialog
    17. dlg.Filter = "Textdateien (*.txt)|*.txt"
    18. If dlg.ShowDialog = Windows.Forms.DialogResult.OK Then
    19. Me.SaveRichtextboxContent(dlg.FileName, RichTextBox1, RichTextBox2, RichTextBox3, RichTextBox4, RichTextBox5)
    20. End If
    21. End Using
    22. End Sub
    23. Private Sub SaveRichtextboxContent(ByVal filename As String, ByVal ParamArray rtbx As RichTextBox())
    24. Dim sb As New System.Text.StringBuilder
    25. For Each rtb As RichTextBox In rtbx
    26. For Each line As String In rtb.Lines
    27. sb.AppendLine(line)
    28. Next
    29. Next
    30. Try
    31. IO.File.WriteAllText(filename, sb.ToString)
    32. Catch ex As Exception
    33. MessageBox.Show(ex.Message, "Speichern", MessageBoxButtons.OK, MessageBoxIcon.Error)
    34. End Try
    35. End Sub
    Ich gehe nur wie folgt vor:


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim Savefile As New SaveFileDialog
    Savefile.FileName = "Byron Katie"
    Savefile.Filter = "Text Files(*.rtf)|*.rtf"
    Savefile.Title = "Save..."
    Savefile.ShowDialog()

    Try
    Dim Write As New System.IO.StreamWriter(Savefile.FileName)
    Write.Write(Labela.Text)
    Write.Write(RichTextBox1.Text)
    Write.Write(Labelb.Text)
    Write.Write(RichTextBox2.Text)
    Write.Write(Labelc.Text)
    Write.Write(RichTextBox3.Text)
    Write.Write(Labeld.Text)
    Write.Write(RichTextBox4.Text)
    Write.Write(Labele.Text)
    Write.Write(RichTextBox5.Text)
    Write.Write(Labelf.Text)
    Write.Write(RichTextBox6.Text)
    MsgBox("Erfolgreich gespeichert")
    Write.Close()

    Catch ex As Exception
    MsgBox("Error - Versuche es bitte nochmal")
    End Try
    End Sub

    Gibt es die möglichkeit das ich nach jedem label und nach jeder Richtextbox einen Absatz einfüge?
    Danke schonmal :)!

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