StreamWriter erstellt eine leere Zeile

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    StreamWriter erstellt eine leere Zeile

    Hallo allerseits!
    Mir ist letztens ein Problem beim vergleichen von zwei String-Variablen aufgefallen, wobei eine Variable von einer zuvor (mit den StreamWriter) erstellten .txt geladen wurde.
    Obwohl es die Exakt gleichen Werte sein sollten wurde die äquivalent-Funktion nicht ausgelöst.

    Nach langer Fehleranalyse bin ich dann schlussendlich fündig geworden:
    Der StreamWriter erstellt immer eine leere letzte Zeile, welche anscheinend beim parsen in ein Label oder Textbox (Ja, auch wenn: Multiline = False) immer übernommen wird.

    Hier noch mein verwendeter Code:

    Schreiben der .txt:

    VB.NET-Quellcode

    1. If File.Exists(hauptordner & "version.txt") = True Then
    2. Dim sw As New StreamWriter(hauptordner & "version.txt")
    3. sw.WriteLine(aktuelle_version, 0)
    4. sw.Close()
    5. End If
    6. variablen_aktualisieren()



    Vergleichen der beiden Variablen:

    VB.NET-Quellcode

    1. If TextBox1.Text = TextBox2.Text Then
    2. Button1.Enabled = False
    3. Else
    4. Button1.Enabled = True
    5. End If


    So Sieht die .txt aus:

    Quellcode

    1. ​1.11.2.rev2
    2. (hier steht normalerweise nichts/es sollte nur eine leere Zeile signalisieren)



    So sollte sie aussehen:

    Quellcode

    1. ​1.11.2.rev2


    Vielen Dank im Voraus :)
    Mach mal einen Breakpoint und schau nach, was in der Variable drinnen steht
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Marv schrieb:

    Vergleichen der beiden Variablen
    geht dann so:

    VB.NET-Quellcode

    1. Button1.Enabled = TextBox1.Text <> TextBox2.Text
    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!