Guten Tag,
ich habe seit Jahr und Tag folgenden Code in meiner Anwendung um eine Inidatei zu schreiben (vereinfachte Darstellung). Der Code hat auch immer funktioniert.
Schreiben von Daten per TMemIniFile, dann schreiben von Daten per TINIFile. Warum auch immer man das so macht ist egal, es hat funktioniert.
Nun habe ich schon ein paar mal das PRoglem gehabt, dass es nicht mehr funktioniert hat und die Ini-Sektion danach zweimal in der selben Ini-Datei stand. Bei einem Kunden hat das jetzt auf 7 Rechner geklappt, auf 3 nicht. Zusätzlich habe ich das Problem bei 2 anderen Kunden festgestellt.
Code:
procedure TForm6.Button2Click(Sender: TObject);
var
lDateiName: string;
lMemInifile: TMemIniFile;
lInifile: TIniFile;
begin
lDateiName := '.\Meine.ini';
lMemInifile := TMemIniFile.Create(lDateiName);
try
lMemInifile.WriteString('SEKTION', 'KEY1', 'VALUE1');
lMemInifile.UpdateFile;
finally
FreeAndNil(lMemInifile);
end;
lInifile := TIniFile.Create(lDateiName);
try
lInifile.WriteString('SEKTION', 'KEY2', 'VALUE2');
finally
FreeAndNil(lInifile);
end;
end;
Wenn ich den Code umstelle, so dass ausschließlich TMemIniFiles verwendet werden, habe ich das Problem nicht mehr:
Code:
procedure TForm6.Button2Click(Sender: TObject);
var
lDateiName: string;
lMemInifile: TMemIniFile;
lInifile: TMemIniFile;
begin
lDateiName := '.\Meine.ini';
lMemInifile := TMemIniFile.Create(lDateiName);
try
lMemInifile.WriteString('SEKTION', 'TEST', 'VALUE1');
lMemInifile.UpdateFile;
finally
FreeAndNil(lMemInifile);
end;
lInifile := TMemIniFile.Create(lDateiName);
try
lInifile.WriteString('SEKTION', 'TEST2', 'VALUE2');
lInifile.UpdateFile;
finally
FreeAndNil(lInifile);
end;
end;
Wie ich das löse ist mir klar, aber was mich interessieren würde, woher kommt das Problem so plötzlich? Wurde da durch ein Windows-Update was am Ini-File-Handling geändert? Ist da jemandem was bekannt?