leeren Wert finden

  • VB.NET
  • .NET (FX) 4.0

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    leeren Wert finden

    Hallo Zusammen,

    Ich habe derzeit einen kleinen Denkfehler bezüglich einer Funktion. Folgendes:

    In einer ini Datei speicher ich 5 Werte ab und aktualisiere jeweil den Wert der da nach kommt. Ebenfalls werden gleiche Werte ignoriert.

    Nun soll der Benutzer aber noch die möglichkeit haben, diese Werte zulöschen, was an sich kein Problem ist doch allerdings überschreibt er dann ja nicht den leeren Wert. Sofern ihr es verstanden habt, ich suche nach einem Weg diese super lange if Abfrage zu verkürzen, sodass er immer den Wert überschreibt, der entweder leer ist oder einen erstellt der nicht existiert. Gleichzeitig soll sobald ein 6ter Eintrag kommt der älteste überschrieben werden.

    Hier ist mal meine derzeitige Lösung, allerdings denke ich das es wesentlich einfacher gehen kann.

    VB.NET-Quellcode

    1. 'Lesezeichen Funktion
    2. Dim lesezeichenINI As New INIDatei
    3. lesezeichenINI.Pfad = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Umrechner\settings.ini"
    4. If Lesezeichen1ToolStripMenuItem1.Text = GetLoadFile.FileName Or Lesezeichen1ToolStripMenuItem2.Text = GetLoadFile.FileName Or Lesezeichen1ToolStripMenuItem3.Text = GetLoadFile.FileName Or Lesezeichen1ToolStripMenuItem4.Text = GetLoadFile.FileName Or Lesezeichen1ToolStripMenuItem5.Text = GetLoadFile.FileName Then
    5. 'Nichts machen
    6. Else
    7. If lesezeichenINI.WertLesen("Lesezeichen", "current") = Nothing Then
    8. lesezeichenINI.WertSchreiben("Lesezeichen", "current", "2")
    9. lesezeichenINI.WertSchreiben("Lesezeichen", "1", GetLoadFile.FileName)
    10. Lesezeichen1ToolStripMenuItem1.Enabled = True
    11. Lesezeichen1ToolStripMenuItem1.Visible = True
    12. Lesezeichen1ToolStripMenuItem1.Text = GetLoadFile.FileName
    13. ElseIf lesezeichenINI.WertLesen("Lesezeichen", "current") = "1" Then
    14. lesezeichenINI.WertSchreiben("Lesezeichen", "1", GetLoadFile.FileName)
    15. lesezeichenINI.WertSchreiben("Lesezeichen", "current", "2")
    16. Lesezeichen1ToolStripMenuItem1.Enabled = True
    17. Lesezeichen1ToolStripMenuItem1.Visible = True
    18. Lesezeichen1ToolStripMenuItem1.Text = GetLoadFile.FileName
    19. ElseIf lesezeichenINI.WertLesen("Lesezeichen", "current") = "2" Then
    20. lesezeichenINI.WertSchreiben("Lesezeichen", "2", GetLoadFile.FileName)
    21. lesezeichenINI.WertSchreiben("Lesezeichen", "current", "3")
    22. Lesezeichen1ToolStripMenuItem2.Enabled = True
    23. Lesezeichen1ToolStripMenuItem2.Visible = True
    24. Lesezeichen1ToolStripMenuItem2.Text = GetLoadFile.FileName
    25. ElseIf lesezeichenINI.WertLesen("Lesezeichen", "current") = "3" Then
    26. lesezeichenINI.WertSchreiben("Lesezeichen", "3", GetLoadFile.FileName)
    27. lesezeichenINI.WertSchreiben("Lesezeichen", "current", "4")
    28. Lesezeichen1ToolStripMenuItem3.Enabled = True
    29. Lesezeichen1ToolStripMenuItem3.Visible = True
    30. Lesezeichen1ToolStripMenuItem3.Text = GetLoadFile.FileName
    31. ElseIf lesezeichenINI.WertLesen("Lesezeichen", "current") = "4" Then
    32. lesezeichenINI.WertSchreiben("Lesezeichen", "4", GetLoadFile.FileName)
    33. lesezeichenINI.WertSchreiben("Lesezeichen", "current", "5")
    34. Lesezeichen1ToolStripMenuItem4.Enabled = True
    35. Lesezeichen1ToolStripMenuItem4.Visible = True
    36. Lesezeichen1ToolStripMenuItem4.Text = GetLoadFile.FileName
    37. ElseIf lesezeichenINI.WertLesen("Lesezeichen", "current") = "5" Then
    38. lesezeichenINI.WertSchreiben("Lesezeichen", "5", GetLoadFile.FileName)
    39. lesezeichenINI.WertSchreiben("Lesezeichen", "current", "1")
    40. Lesezeichen1ToolStripMenuItem5.Enabled = True
    41. Lesezeichen1ToolStripMenuItem5.Visible = True
    42. Lesezeichen1ToolStripMenuItem5.Text = GetLoadFile.FileName
    43. End If
    44. End If



    Dazu noch eine kurze Frage bezüglich Schleifen, ich möchte auf einer anderen Form alle Inhalte einens MenüStrips auslesen wie lässt sich das nochmal realisieren?


    Vielen dank und Liebe Grüße!
    Pack die Texte der Controls in eine List(Of String), die kannst Du dann mit Contains(...) befragen. Beachte, dass Pfadnamen nicht Case-sensitiv sind, manche String-Vergleiche aber sehrwohl.
    Zugriff auf andere Formen gugst Du hier.
    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!