Neue Einträge in *.ini Datei ohne alte Inhalte zu überschreiben

  • Hallo Autit'ler,

    ich habe ein Problem, welches ich in einen meiner alten Projekte schonmal gelöst hatte, es aber nun nicht mehr zur Hand habe und damit erneut auf dem Schlauch stehe.

    Ich schreibe in eine ini Datei bestimmte Daten. Ansich kein Problem - das auslesen sowie schreiben funktioniert problemlos.

    Jedoch soll alles was ich beim erneuten speichern eingetragen habe nicht die alten Daten löschen/überschreiben, sondern ergänzen.

    Hier ein kleiner Auszug wo der iniwrite stattfindet:

    [autoit]

    If @Mon & @Year = "112011" Then
    $read = GUICtrlRead($notizen)
    IniWrite(@ScriptDir & "\eDiary.ini", "Dezember 2011", "Eintrag", "***" & @MDAY&"."&@MON&"., "& @HOUR&":"&@MIN&":"&@SEC & "***" & "[CRLF]" & StringReplace($read, @CRLF, '[CRLF]')& "[CRLF][CRLF]")
    MsgBox(64, "Speichern erfolgreich", "Dein Eintrag wurde gespeichert!")

    [/autoit]

    Zwar speichert er mir das ganze natürlich ab was in meinem Notizfeld steht, jedoch wenn ich nun erneut speicher dann ersetzt er den vorherigen Wert anstatt ihn zu ergänzen.

    Ich weiß dass man irgendwie mit einer Variable +1 arbeiten musste. Aber unter Google finde ich derzeit einfach nichts passendes (mit Sicherheit einfach nur die falschen Suchbegriffe verwendet) und ich selber hab gerade einfach nur ne Denkblockade, was mir ein solch simples Problem beschert.

    Nur nochmal zum Verständniss:

    Ich speicher folgenden Wert in eine ini-Datei:

    [Januar 2012]
    Eintrag=Januar 2012[CRLF]Kein Eintrag vorhanden

    Nun möchte ich einen weiteren Text hinzufügen ohne das der alte Text ersetzt wird:

    [Januar 2012]
    Eintrag=Januar 2012[CRLF]Kein Eintrag vorhanden[CRLF]Hier soll mein weiterer Text stehen...

    Hat da jemand nochmal Hilfe für mich?

    Mein AutoIT Smartphone GUI >>hier<<

    Der Mensch ist das einzige Tier, dass arbeiten muss.

    Einmal editiert, zuletzt von mirko2002 (16. November 2011 um 11:22)

  • Einfach vorher den Inhalt einlesen und mitsammt dem neuen Wert in den Schlüssel zurückschreiben.

    [autoit]

    IniWrite(@ScriptDir & "\eDiary.ini", "Dezember 2011", "Eintrag", IniRead(@ScriptDir & "\eDiary.ini", "Dezember 2011", "Eintrag", "") & "***" & @MDAY & "." & @MON & "., " & @HOUR & ":" & @MIN & ":" & @SEC & "***" & "[CRLF]" & StringReplace($read, @CRLF, '[CRLF]') & "[CRLF][CRLF]")

    [/autoit]