Wenn beim Schreiben was schief läuft (auch das ist nat. kein Delphi Problem), dann ist ein Teil der Daten oder der Inhalt der ganzen memini weg. (Auch das gab's schon wiederholt bei sehr wenigen Kunden.) Ich speichere deshalb jeweils vor dem Schreiben der Daten mittels SetStrings am Anfang und am Ende der Daten eine Versionsnummer ab und überprüfe beim Laden des MeminiFiles, ob diese Nummern am Anfang und am Ende vorhanden sind. Wenn die Marken vorhanden sind, dann erstelle ich ein Backup der Datei; wenn die Marken nicht vorhanden sind, dann lade ich das Backup.
Falls du die MemIni-Daten beim Beenden deines Programms speicherst, dann solltest du unbedingt daran denken, Windows möglichst am Runterfahren zu hindern, bis die MemIni-Daten auf Platte sind. [Das gilt natürlich generell, wenn du Daten speichern willst... ini-Files sind da aber natürlich toleranter...]
Das ist interessant, ich habe auch ähnliche Probleme, das ein INI File meiner Programme manchmal leer oder unvollständig ist.
Es gibt zwar eine SIK Funktion, die manuell eine Sicherung erstellt aber wer macht das schon immer.
Ich hatte vermutet, dass der Prozess beim Speichern der INI von Benutzern im TM abschossen wurde oder das es bei einem Windows/Programm-Absturz passiert.
Gibt es ein kleines Beispiel für die Versionsnummern Lösung und wie man Windows am Runterfahren hindert?
Erfahrung ist etwas, daß man erst bekommt, kurz nachdem man es dringend gebraucht hätte.