Zahlenwert innerhalb einer Textdatei um 1 erhöhen

  • VB.NET

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

    VB.NET-Quellcode

    1. TextBox1.Text = TextBox1.Text + 1
    →Aber dann darf die TextBox nur Zahlen enthalten.
    →Sonst könntest du das noch so machen:

    VB.NET-Quellcode

    1. TextBox1.SelectedText = TextBox1.SelectedText + 1
    Pass dann nur auf dass sich das Programm nicht andauernd aufhängt! [EDIT: Dann muss der Nutzer die zu erhöhende Zahl immer neu auswählen.]

    Aber könntest du das nicht mit einem NumericUpDown machen? Dann bräuchtest du nur den Wert zu erhöhen, und außerdem ist diese für diesen Zweck da.
    There are only 10 types of poeple in the world: Those who understand binary and those who don't.
    @~blaze~ Jou.
    @Chritation
    In einer Textdatei steht ein String. Lies diesen ein, konvertiere ihn in einen numerischen Wert, verändere den numerischen Wert und speichere ihn als String wieder in die Datei.
    Alternativ:
    Nimm eine Binärdatei, da steht die binärdarstellung Deines Wertes drin (Bytes, nicht human readable),
    lies den Wert ein, verändere ihn und speichere ihn wieder binär ab.
    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!
    sehr schön wäre, von Anfang an Typisierung und Datentypen zu beachten. Eine Zahl gehört nicht in eine Textdatei. Sondern in eine Binär-Datei, und man sollte sie binär hineinschreiben, und auslesen. Und zu beachten auch, dass es ca 10 verschiedene Zahl-Datentypen gibt, welchen hätten Sie denn gern?
    Hier mal für Double:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. AddValue(New FileInfo("C:bla.data"), 3.1412)
    3. End Sub
    4. Private Sub AddValue(fi As FileInfo, amount As Double)
    5. If fi.Exists Then
    6. Using s = New FileStream(fi.FullName, FileMode.Open), r = New BinaryReader(s)
    7. amount += r.ReadDouble
    8. End Using
    9. End If
    10. Using s = New FileStream(fi.FullName, FileMode.Create), wr = New BinaryWriter(s)
    11. wr.Write(amount)
    12. End Using
    13. End Sub
    Nette Fingerübung um sich ans Arbeiten mit Dateien zu gewöhnen.
    Inne Realität würde man solche Werte wohl eher in den Settings ablegen, vlt. sogar mit DatenBindung - Settings richtig verwenden + an Settings binden

    Edit: Ach, hallo Rod! - 2 Doofe, ein Gedanke ;)