Hallo!
Ich verwende TDataFile:
www.torry.net/quicks...tafile&Title=Yes
Dabei tritt ein seltsamer Effekt auf:
Bei Programmstart lese ich mit ReadStrings aus einer Datei in eine TStringList ein. Nun lösche ich Teile eines Eintrags aus einer TStringList und speichere diese am Programmende mit WriteStrings als Datei ab. Die TStringList enthält nach dem Ändern die korrekten Daten, die Änderung ist zur Laufzeit vorhanden, doch beim nächsten Programmstart, wenn ich mit ReadStrings einlese, ist die Änderung weg und die alten Daten sind wieder da!
Wenn ich testweise zwischendurch per Buttonklick speichere und danach wieder einlese, ist alles korrekt. Zur Sicherheit habe ich beim Programmende WriteStrings auskommentiert. Beim nächsten Programmstart sind wieder die alten Daten da.
Und jetzt das Beste: Wenn ich Strings anfüge, klappt es! Nur beim Entfernen oder ändern vorhandener Strings tritt der Fehler auf.
Ich kann ausschliessen, dass nicht in die gleiche Datei geschrieben wird, aus der eingelesen wird.
Einlesen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| dat := TDataFile.Create(AppDataDir+'Data.dat'); try dat.ReadStrings('Data', 'Synonym', SynonymeL); finally dat.Free; end; |
Die Änderung selbst ist ebenfalls unspektakulär:
Delphi-Quelltext
1: 2: 3:
| i := 100; s1 := 'Meine Änderung'; SynonymeL[i] := s1; |
Speichern:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| dat := TDataFile.Create(AppDataDir+'Data.dat'); try dat.WriteStrings('Data', 'Synonym', SynonymeL); finally dat.Free; end; |
Ich verstehe nicht, was da falsch läuft!
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!