Inhalt von 11 TextBoxen in .txt schreiben und lesen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von mbernhard.

    Inhalt von 11 TextBoxen in .txt schreiben und lesen

    Hallo zusammen

    Mit den mittels Suche gefundenen Beiträge konnte ich mein Problem leider nicht lösen, deshalb versuche ich es nun so. Ich danke euch schon im Voraus für die Hilfe.

    Ich muss ein kleines Berechnungsprogramm in VB machen, welches mit Werten, welche in 11 Textboxen eingegeben werden, irgendwelche Berechnungen anstellt.

    Da diese Werte, die eingegeben werden, Messwerte sind, sollen die einzelnen Werte für jede Berechnung gespeichert werden.

    Ich möchte nun mit Hillfe der der Funktionen Speichern, Speichern unter, usw. die aktuellen Werte der TextBoxen in ein .txt speichern und später wieder aufrufen.

    Ich habe mir gedacht, dass ich die 11 TextBoxen in ein Array schreiben könnte und dieses dann in der .txt-Datei abspeichere.

    Das mit dem Array war kein Problem, doch wie kann ich nun den Inhalt des Arrays (dataArray, eindimensional mit 11 einträgen) in eine .txt Datei speichern und später wieder so einlesen, dass ich wieder die gleichen Werte in meinen TextBoxen habe?

    Herzlichen Dank für eure Hilfe.
    Hallo...

    Ich nehme jetzt einfach mal an du benutz Text1 als Name fürs erste Textfeld, Text2 für das zweite usw.

    benutz den Code:

    Quellcode

    1. Private Sub Command1_Click()
    2. CommonDialog1.Filter = "Textdokument (*.txt)|*.txt"
    3. CommonDialog1.ShowSave
    4. If CommonDialog1.FileName <> "" Then
    5. Open CommonDialog1.FileName For Output As #1
    6. Print #1, Text1.Text
    7. Print #1, Text2.Text
    8. Print #1, Text3.Text
    9. Print #1, Text4.Text
    10. Print #1, Text5.Text
    11. Print #1, Text6.Text
    12. Print #1, Text7.Text
    13. Print #1, Text8.Text
    14. Print #1, Text9.Text
    15. Print #1, Text10.Text
    16. Print #1, Text11.Text
    17. Close #1
    18. End If
    19. End Sub
    Danke für deine schnelle Antwort. Ich komme aber (noch) nicht ganz klar damit. Mein Code sieht zur Zeit so aus:

    VB.NET-Quellcode

    1. Private Sub SpeichernunterToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernunterToolStripMenuItem1.Click
    2. With dlgSaveFile
    3. 'Eigenschaften des Dialogs initialisieren
    4. .Filter = "Textdateien (*.txt)|*.txt|Alle Dateien (*.*)|*.*"
    5. .FilterIndex = 2
    6. 'Dialog anzeigen lassen
    7. Dim dlgResult As DialogResult = .ShowDialog()
    8. 'Ereignishandler beenden, wenn Anwender auf Abbrechen geklickt hat
    9. If dlgResult = Windows.Forms.DialogResult.Cancel Then
    10. Return
    11. End If
    12. End With
    13. Try
    14. 'Dateinamen merken
    15. Me.mCurrentFile = dlgSaveFile.FileName
    16. 'Inhalt der Testbox in Datei schreiben
    17. My.Computer.FileSystem.WriteAllText(dlgSaveFile.FileName, dataArray(1), False)
    18. 'Geändert-Flag zurücksetzen
    19. Me.mIsModified = False
    20. 'Titelleiste anpassen
    21. Me.Text = My.Computer.FileSystem.GetName(dlgSaveFile.FileName) + " - " + Me.mApplicationName
    22. Catch ex As Exception
    23. MessageBox.Show(ex.Message, "Fehler aufgetreten", MessageBoxButtons.OK, MessageBoxIcon.Error)
    24. End Try
    25. End Sub


    Ich kann damit nur die eine Zeile aus dem Array in die .txt-Datei schreiben (oder allenfalls der Inhalt einer TextBox. Wie kann ich jetzt deinen Code da einbauen?

    Danke.
    Bitte immer die VB-Version mit angeben, Hauptforum bedeutet VB6 oder älter!

    My.Computer.FileSystem.WriteAllText(dlgSaveFile.FileName, dataArray(1), False)

    Mit dataArray(1) wird auch nur 1 Eintrag geschrieben, du musst mit einer Schleife alle Einträge speichern...
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Habe VB 2005. Sorry, wenn ich da ins falsche Forum geschrieben habe..

    Hab ich versucht:

    Quellcode

    1. Dim i as Integer
    2. For i=0 To 10
    3. My.Computer.FileSystem.WriteAllText(dlgSaveFile.FileName, dataArray(i), False)
    4. Next


    Dies funktioniert aber nicht.. Im .txt erscheint immer nur Eintrag. Ich nehme an, der vorherige wird überschrieben.

    Mach ich da was falsch??
    Ich kenn mich mit VB.net & Co nicht aus, aber das "All" in "WriteAllText" stört mich ein wenig. Gibt es noch andere Methoden wie z.B. "WriteText", "Write" oder "WriteLine"? Such einfach mal in MSDN was "FileSystem" noch so zu bieten hat...
    Gruß, Agent Smith 8-)

    activeFlags = (lazy OR weary)

    Lemgo-Verschwörung | Mathematics | VB-Paradise in blau
    Hallo

    Ich habs nun anders gelöst. Habe die Textfelder mit einer Schleife in einen String gespeichert (Leerzeichen getrennt).
    So kann ich nun den String speichern mit der genannten Funktion. Zum wiedereinlesen, nehme ich den String und teile ihn mit Split() wieder in seine ursprünglichen Bestandteile auf. Funktioniert ganz gut.

    Danke für die Hilfe und auf ein andermal..
    Michi