Konfigurationseinstellungen in Spezial-Ordner (C:\Users\Knato\AppData) abspeichern

  • VB.NET

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

    Konfigurationseinstellungen in Spezial-Ordner (C:\Users\Knato\AppData) abspeichern

    Hi, ich hab ein Programm programmiert, das beim Schließen alle Zeichen aus den Textboxen abspeichert und beim nächsten Start wieder einliest. Die Konfigurationseintellungen (Settings.ini) werden in dem Verzeichnis gespeichert, indem sich das Programm befindet. Da man das aber sehr leicht bearbeiten kann, möchte ich diese Datei in einem Spezial-Ordner abspeichern. Ich meine damit den "AppData" - Ordner, den jeder User hat. Dieser ist ja nicht zu sehen. (Wenn man ihn nicht sichtbar macht)
    Hab aber keine Ahnung, wie ich das mache. Ich habs schon probiert, aber das funktioniert nicht. Zum normalen abspeichern nutze ich folgenden Code:

    VB.NET-Quellcode

    1. INI_WriteValueToFile("Zahlen", "Zahl1", TextBox1.Text, ".\Settings.ini")
    2. INI_WriteValueToFile("Zahlen", "Zahl2", TextBox3.Text, ".\Settings.ini")
    3. INI_WriteValueToFile("Zahlen", "Zahl3", TextBox5.Text, ".\Settings.ini")
    4. INI_WriteValueToFile("Zahlen", "Ergebniss", TextBox2.Text, ".\Settings.ini")
    5. INI_WriteValueToFile("Rechnung", "Rechenoperation", TextBox4.Text, ".\Settings.ini")
    6. INI_WriteValueToFile("Einstellungen", "Zuletzt verwendet", Label4.Text, ".\Settings.ini")
    7. INI_WriteValueToFile("Einstellungen", "Datum", Label11.Text, ".\Settings.ini")


    Und zum Laden der Daten diesen:

    VB.NET-Quellcode

    1. TextBox1.Text = INI_ReadValueFromFile("Zahlen", "Zahl1", "", ".\Settings.ini")
    2. TextBox3.Text = INI_ReadValueFromFile("Zahlen", "Zahl2", "", ".\Settings.ini")
    3. TextBox5.Text = INI_ReadValueFromFile("Zahlen", "Zahl3", "", ".\Settings.ini")
    4. TextBox2.Text = INI_ReadValueFromFile("Zahlen", "Ergebniss", "", ".\Settings.ini")
    5. TextBox4.Text = INI_ReadValueFromFile("Rechnung", "Rechenoperation", "", ".\Settings.ini")
    6. Label13.Text = INI_ReadValueFromFile("Einstellungen", "Name", "", ".\Settings.ini")


    Mein Updater, der in diesem Prgramm drin ist, speichert auch eine ini-Datei in dem "AppData" - Ordner. Das sieht so aus:

    VB.NET-Quellcode

    1. My.Computer.Network.DownloadFile("http://dl.dropbox.com/u/58564123/Version%20von%20Rechner.txt", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Rechner\version.ini", "", "", False, 60000, True)


    Aber ich weiß nicht, wie ich dieses

    VB.NET-Quellcode

    1. (Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
    in den anderen Code richtig einfüge, sodass das dann auch funtioniert.

    Könnt ihr mir helfen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Knato“ ()

    Ich weiß doch schon, wo ich die Settings hinspeichern will. Aber wie ich den Code machen muss, weiß ich nicht.

    Ich brauche doch irgendsowas:

    VB.NET-Quellcode

    1. (Environment.SpecialFolder.ApplicationData) & "\Rechner\settings.ini


    Aber dann fehlen noch diese:

    VB.NET-Quellcode

    1. ("Zahlen", "Zahl1", TextBox1.Text, ".\Settings.ini")


    Also wie füge ich diesen Pfad vom AppData-Ordner richtig in den obigen Code ein?
    Sorry für Doppelpost:

    Kann ich auch einfach die Settings.ini in eine Datei umwandeln, die nicht geöffnet werden kann? Wie macht man das?


    Edit by Manschula: Es gibt eine Bearbeiten-Funktion! --> Beiträge zusammengeführt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Knato schrieb:

    in eine Datei umwandeln, die nicht geöffnet werden kann
    Meinst Du das Abspeichern nach dem FINO-Prinzip - First In Never Out? :thumbsup: :thumbsup: :thumbsup:
    Wenn sie niemand öffnen kann, wie willst Du sie denn öffnen?
    Sind Deine Daten so wertvoll? Dann lass sie auf Deinem Rechner und gib sie nicht weiter.
    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!
    Nein, ich möchte die Einstellungen des Programms einfach in einer Datei speichern, die so nicht geöfnet werden kann (z.B. *.bin). Kann man die *.ini nicht einfach umwandeln? Das Programm kannst dann doch immer noch öffnen, oder nicht?


    Edit by Manschula: (Unnötiges) Vollzitat entfernt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manschula“ ()

    Bleibt noch die Frage, was wichtig ist.
    Früher wurden solch Settings in INI-Dateien abgespeichert, heute sind es XML-Dateien, manchmal sind es Datenbanken.
    INI- und XML-Dateien sind von Hand editierbar, das ist so gewollt.
    Was außer der Fensterposition willst Du reinschreiben, was nicht editiert werden darf?
    Wenn sich der Kunde verschreibt, knallt es (schlecht programmiert) oder es passiert nix (Default-Value).
    Lass ihm die Freude. Wenn Du ihm was verheimlichst, könnte er auf die Idee kommen, dass Du ihm was verheimlichen willst. Und dann fängt das Hacken an.
    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!
    Also das was darin abgespeichert wird, ist jetzt nichts, was nicht beafrbeitet werden soll. Ich hätte das aber trotzdem so gehabt.
    Dann lass ich den Dateityp so. Aber wie bekomm ich jetzt diese INI-Datei mit allen darin abgespeicherten Werten in den Unsichtbarren AppData-Ordner??