txt speicher problem

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Lupus.

    txt speicher problem

    Hallo zusammen,

    nach langem Tutorials lesen habe ich jetzt ein Problem. Ich habe mit eine Winform gebaut auf der es 4 Textboxes gibt, nun möchte ich diese Eingaben in einer txt speichern. An und für sich bekomm ich das mit den txt speichern schon hin nur nicht so wie ich es gern haben möchte.

    Ein Beispiel:



    ich möchte nun gerne mit diesem Tool eine txt so gespeichert haben das es wie folgt aussieht

    100 200 1111111111111 300
    100 200 2222222222222 300
    100 200 3333333333333 300
    100 200 4444444444444 300
    100 200 5555555555555 300

    Leider bekomm ich es in dieser Ausgabe nicht hin, das ist der Code den ich zum speichern nutze:

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim path As String = "C:ausgabe.txt"
    3. Dim stream As New FileStream(path, FileMode.Append, FileAccess.Write)
    4. Dim write As New StreamWriter(Stream)
    5. write.WriteLine("[Anfang]")
    6. write.WriteLine(vbNewLine & vbNewLine)
    7. write.WriteLine(TextBox1)
    8. write.WriteLine(TextBox2)
    9. write.WriteLine(TextBox4)
    10. write.WriteLine(TextBox3)
    11. write.WriteLine(vbNewLine & vbNewLine)
    12. write.WriteLine("[Ende]")
    13. write.Close()
    14. MessageBox.Show("A File Has Been Saved At " & path, "File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
    15. End Sub


    Kann mir da vll. jemand helfen?

    danke schon mal im vorraus

    gruss
    Baddog

    Quellcode

    1. [Anfang]
    2. System.Windows.Forms.TextBox, Text: 100
    3. System.Windows.Forms.TextBox, Text: 200
    4. System.Windows.Forms.TextBox, Text: 11111111111111111
    5. 22222222222222222
    6. 33...
    7. System.Windows.Forms.TextBox, Text: 300
    8. [Ende]


    das bekomm ich als Ausgabe, und ja das war ein fehler von mir ging aber trotzdem auch ohne \ :)

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim path As String = "C:\ausgabe.txt"
    3. Dim writer As New StreamWriter(path, True)
    4. writer.Writeline("[Anfang]")
    5. writer.Write(vbNewLine & vbNewLine)
    6. writer.Write(TextBox1.Text)
    7. writer.Write(TextBox2.Text)
    8. writer.Write(TextBox4.Text)
    9. writer.Write(TextBox3.Text)
    10. writer.WriteLine(vbNewLine & vbNewLine)
    11. writer.WriteLine("[Ende]")
    12. writer.Close()
    13. MessageBox.Show("A File Has Been Saved At " & path, "File Saved", MessageBoxButtons.OK, MessageBoxIcon.Information)
    14. End Sub



    So funktioniert es bei mir! :)
    Ah ok soweit so gut, nur kann man die Ausgabe jetzt auch noch so formatieren wie ich oben beschrieben habe?

    Momentan ist es so:

    10020011111111111111111
    22222222222222222
    33333333333333333
    44444444444444444
    55555555555555555300

    und so würde ich es gern haben:

    100 200 1111111111111 300
    100 200 2222222222222 300
    100 200 3333333333333 300
    100 200 4444444444444 300
    100 200 5555555555555 300


    nur habe ich keinen schimmer wie ich die ausgabe formatieren kann :(
    so gehts aber ist auf 5 zeilen beschrängt ^^ was anderes wusste ich grade nicht

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim X
    3. Dim Y
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. X = Split(TextBox4.Text, vbNewLine)
    6. Y = TextBox1.Text & " " & TextBox2.Text & " " & X(0) & " " & TextBox3.Text & vbNewLine & TextBox1.Text & " " & TextBox2.Text & " " & X(1) & " " & TextBox3.Text & vbNewLine & TextBox1.Text & " " & TextBox2.Text & " " & X(2) & " " & TextBox3.Text & vbNewLine & TextBox1.Text & " " & TextBox2.Text & " " & X(3) & " " & TextBox3.Text & vbNewLine & TextBox1.Text & " " & TextBox2.Text & " " & X(4) & " " & TextBox3.Text & vbNewLine
    7. IO.File.WriteAllText("C:\ausgabe.txt", Y)
    8. End Sub
    9. End Class
    Wenn man die Zeilen der mehrzeiligen TextBox per Schleife anwählt, ist es nicht auf 5 beschränkt.

    Statt Zeile 6 von Bluespide folgenden Code verwenden:

    VB.NET-Quellcode

    1. Y = ""
    2. For i = 0 To UBound(X)
    3. Y = Y & TextBox1.Text & " " & TextBox2.Text & " " & X(i) & " " & TextBox3.Text & vbNewLine
    4. Next
    huhu,

    ich schon wieder :)

    stehe schon wieder vor einem Problem :(
    das speichern klappt jetzt alles (danke nochmals für eure hilfe) nun möchte ich aber gern das ich auch txt dateien in die TextBox4 laden kann, habe zwar schon die OpenFileDialog gefunden aber ich bekomm es nicht hin und bei msdn werde ich auch nicht schlauer aus dem Beispiel....

    Kann mir da wer nochmal bei helfen?

    gruss
    Baddog
    ok habs rausgefudnen, hat mich 3 kannen kaffee gekostet aber es geht jetzt :P

    VB.NET-Quellcode

    1. Dim myStream As IO.FileStream
    2. Dim openFileDialog1 As New OpenFileDialog()
    3. openFileDialog1.InitialDirectory = "c:\"
    4. openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    5. openFileDialog1.FilterIndex = 2
    6. openFileDialog1.RestoreDirectory = True
    7. If openFileDialog1.ShowDialog() = DialogResult.OK Then
    8. myStream = New IO.FileStream(openFileDialog1.FileName, IO.FileMode.Open)
    9. If Not (myStream Is Nothing) Then
    10. Dim Reader As New IO.StreamReader(myStream)
    11. Do While Reader.Peek > -1
    12. TextBox4.Text = Reader.ReadLine & vbNewLine
    13. Loop
    14. Reader.Close()
    15. myStream.Close()
    16. End If
    17. End If