Hallo!
Ich habe seit einiger Zeit ein Problem mit einem Programm, welches seine Daten in einem DataSet verwaltet und als XML speichert. Erst einmal die Routinen zum Speichern und Laden:
Daten laden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure mainform.TWinForm_Load(sender: System.Object; e: System.EventArgs); var rk : RegistryKey; execPath : String; myRow : Datarow; begin rk := Registry.CurrentUser; rk := rk.OpenSubKey('Software\Microsoft\Windows\CurrentVersion\Run\', true); cb_autostart.checked := not (rk.GetValue(GUID) = nil);
execPath := Path.GetDirectoryName(Application.ExecutablePath); if System.IO.File.Exists(execPath+'\data.xml') then DataSet1.ReadXml(execPath+'\data.xml');
buildMenu; end; |
Daten schreiben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure mainform.TWinForm_Closing(sender: System.Object; e: System.ComponentModel.CancelEventArgs); Var execPath : String; begin execPath := Path.GetDirectoryName(Application.ExecutablePath); DataSet1.WriteXml(execPath+'\data.xml'); end; |
Nun zum Problem:
Das Programm startet beim Systemstart mit und wird auch erst wieder beendet, wenn das System heruntergefahren wird.
Von Zeit zu Zeit (völlig unverhersagbar) startet das Programm mit der Meldung, es könnte den Root-Node nicht finden. Schaue ich mir die zuvor gespeicherte Datendatei an, wundert mich das nicht: sie ist leer!
Ich sehe kein System darin, wann das passiert. Es kann Tage gut gehen und dann taucht das Problem wieder auf.
Wer hat eine Idee? (Mathias?)
MfG
Peter
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".