Inhalt Mehrerer Textboxen in EINER *.txt speichern

  • VB.NET

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von TheMatI.

    Inhalt Mehrerer Textboxen in EINER *.txt speichern

    Hallo ihr lieben,

    Ich suche eine Funktion, wo ich die Inhlate mehrerer Textboxen, Labels und einer listbox in EINER *.txt abspeichern kann.
    Jedoch möchte ich das mit einem .savefiledialog machen

    Habe diesen Beitrag gefunden, jedoch ist das nicht das was ich brauche (glaube ich :wacko: )

    Liebe Grüße Mark
    Wieso ist das nicht, was du suchst? Dort steht, wie du die Inhalte mehrerer Textboxen in einer Datei abspeicherst und wieder ausliest - sogar mit Codes, die du nur geringfügig modifizieren müsstest. Dann erstellst du einen Savefiledialog, den du mit .ShowDialog() anzeigst, und liest den vom Benutzer gewählten Dateipfad aus .FileName aus. Dort speicherst du die Datei dann.
    Also ich ahbe das jetzt mit dem Folgenen Code gemacht:


    VB.NET-Quellcode

    1. If SaveFileDialog1.FileName = "" Then SaveFileDialog1.ShowDialog() End If
    2. Dim objwriter As New System.IO.StreamWriter(SaveFileDialog1.FileName) With objwriter .Write(Label4.Text) .Write(Label8.Text) .Write(ListBox1.Text) .Write(Label6.Text) .Close() End With



    Jetzt gibt es 2 probleme.

    1. Das Programm schreibt alles in eine zeile. wie kann ich das ändern?

    2. er liest die eine listbox nicht aus. Alle anderen ja.


    könnt ihr mir da hlefen??

    Viele liebe Grüße,
    Euer Mark
    EDIT: So muss der ganze Code dann aussehen:

    VB.NET-Quellcode

    1. If SaveFileDialog1.FileName = "" Then
    2. SaveFileDialog1.ShowDialog()
    3. End If
    4. Dim objwriter As New System.IO.StreamWriter(SaveFileDialog1.FileName)
    5. With objwriter
    6. .Write(label4.text & vbCrLf)
    7. .Write(label8.text & vbCrLf)
    8. .Write(ListBox1.SelectedItem & vbCrLf)
    9. .Write(label6.text & vbCrLf)
    10. .Close()
    11. End With

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „pc-freack“ ()

    Also mit den Zeilen, das geht, aber der Inhalt der listbox wird nicht abgespeichert!

    Grüße

    /Edit: wisst ihr da ne Lösung??

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mark95“ ()

    Hier eine kleine Demo, wie es funktionieren könnte

    VB.NET-Quellcode

    1. Private Sub TextBoxSpeichern(ByVal pfad As String, ByVal ParamArray ctrls() As Control)
    2. Dim inhalt As New System.Text.StringBuilder
    3. Dim ctrl As Control
    4. ' Inhalt der angegebenen Controls zusammenfügen
    5. ' Bei Label & TextBox werden Text-Inhalt gespeichert
    6. ' Bei Listbox ListBox-Items
    7. For index As Integer = 0 To ctrls.Length - 1
    8. ctrl = ctrls(index)
    9. If TypeOf ctrl Is TextBox Or TypeOf ctrl Is Label Then
    10. inhalt.AppendLine(ctrl.Name & ": " & ctrl.Text)
    11. ElseIf TypeOf ctrl Is ListBox Then
    12. For Each itm As String In DirectCast(ctrl, ListBox).Items
    13. inhalt.AppendLine(ctrl.Name & ": " & itm.ToString)
    14. Next
    15. End If
    16. Next
    17. ' Inhalt speichern
    18. IO.File.WriteAllText(pfad, inhalt.ToString)
    19. End Sub
    20. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    21. Me.TextBoxSpeichern("C:\Temp\test.txt", TextBox1, TextBox2, TextBox3, TextBox4, Label1, Label2, Label3, ListBox1)
    22. End Sub
    Vielleicht verstehe ich alles falsch, aber hier ist mein Code:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Try
    3. Dim Save as new SaveFileDialog()
    4. Save.Title = "Wählen Sie den Speicherort aus."
    5. Save.ShowDialog()
    6. My.Computer.FileSystem.WriteAllText(Save.FileName, TextBox1.Text & vbnewline & TextBox2.Text, False) 'vbnewline erstellt eine neue Zeile
    7. Catch ex as Exception
    8. MsgBox("Fehler, kein Speicherort ausgewählt!")
    9. End Try
    10. End Sub


    Mfg
    Hey,
    @domipoppe: woher willst du wissen, dass wenn er im Catch-Teil landet, keinen Speicherpfad ausgewählt wurde? Es kann doch auch einen anderen Fehler geben.. Dafür gibt es die "Ex"-Variable bsp. ex.mesage ... gibt dir die Genaue Fehlermeldung zurück.

    lg.

    LucaWelker
    lg.

    LucaWelker
    Ich bekomme es net hin -.-

    VB.NET-Quellcode

    1. IO.File.WriteAllText(pfad, inhalt.ToString)



    was muss ich denn in diesem code genau ändern?? Weil ich bin ein mehr oder weniger anfäger. habe immer nur einfache sachen programiert.

    HILFE! :(

    Wenn möglich besteht auch die möglichkeit sich auf einem Ts server zu treffen und das per teamviewer zu machen!

    Liebe Grüße mark
    Kannst es auch einfach so machen(müsste gehen)

    VB.NET-Quellcode

    1. Dim sw As New System.IO.StreamWriter(pfad) 'Neuer StreamWriter der immer in der variable "pfad" speichert, kannst du mit
    2. 'savefiledialog bestimmen..

    dann

    VB.NET-Quellcode

    1. sw.Write(inhalt) 'sw schreibt nun den inhalt der variable"inhalt" im pfad "pfad"
    2. sw.close 'Schließen
    3. 'Hier evtl. eine MsgBox dass du weist, ob er fertig ist
    4. MsgBox("Fertig", "Gespeichert")

    Einfach den SaveFileDialog von domidoppe hier mit rein bzw. dies bei ihm mit rein xDD
    Aber du musst schon wissen wo genau hin mit logik findest es raus ^^
    Allerdings musst du den code bei ihm:

    VB.NET-Quellcode

    1. Catch ex As Exeption
    2. MsgBox("Fehler,Kein speicherort ausgewählt")
    3. End Try

    in :

    VB.NET-Quellcode

    1. Catch ex As Exeption
    2. MsgBox("Fehler: " ex.Message)
    3. End Try

    ändern da nicht immer nur kein speicherort ausgewählt ist z.B datei schon vorhanden.
    Den fehler zeigt dir dann die message box an!