如何覆盖INI文件
How to overwrite INI file
我有这段代码可以将对象的位置保存在 ini 文件中,但是当我尝试覆盖已保存的文件时,它不会删除文件中当前的数据。
我有一个弹出窗口询问用户是否要覆盖,但它并没有清除整个文件,我该如何更改它呢?
procedure TForm1.SaveFile(Sender: TObject);
var
Dialog : TSaveDialog;
begin
Dialog := TSaveDialog.Create(self);
try
//dialog properties go here
Dialog.Filter := 'Title (*.ini)|*.ini';
Dialog.Options := Dialog.Options + [ofOverwritePrompt];
if Dialog.Execute then
begin
//any saving procedures go here if required
ShowMessage('File saved: ' + Dialog.FileName);
end
else
ShowMessage('Save file was cancelled');
finally
Dialog.Free;
end;
end;
以下过程将对象保存到文件本身:
procedure TForm1.Save(const FileName: string);
var
Ini: TMemIniFile;
I: Integer;
procedure WhatYouAreSaving(Object: TButton);
var
Section: string;
begin
Section := 'Object'
//Properties you want to save go here
end;
begin
Ini := TMemIniFile.Create(FileName);
////For reference, the answer provided would go here
try
WhatYouAreSaving(Object);
Ini.UpdateFile;
finally
Ini.Free;
end;
end;
要清除 ini 文件的内容,请在 Ini := TMemIniFile.Create(FileName);
之后调用 Ini.Clear
Erases all data from the INI file in memory.
Call Clear to erase all data from the INI file that is currently buffered in memory. All sections, keys, and values are erased.
要删除 ini 文件中的部分,请使用 TMemIniFile.EraseSection。
我有这段代码可以将对象的位置保存在 ini 文件中,但是当我尝试覆盖已保存的文件时,它不会删除文件中当前的数据。
我有一个弹出窗口询问用户是否要覆盖,但它并没有清除整个文件,我该如何更改它呢?
procedure TForm1.SaveFile(Sender: TObject);
var
Dialog : TSaveDialog;
begin
Dialog := TSaveDialog.Create(self);
try
//dialog properties go here
Dialog.Filter := 'Title (*.ini)|*.ini';
Dialog.Options := Dialog.Options + [ofOverwritePrompt];
if Dialog.Execute then
begin
//any saving procedures go here if required
ShowMessage('File saved: ' + Dialog.FileName);
end
else
ShowMessage('Save file was cancelled');
finally
Dialog.Free;
end;
end;
以下过程将对象保存到文件本身:
procedure TForm1.Save(const FileName: string);
var
Ini: TMemIniFile;
I: Integer;
procedure WhatYouAreSaving(Object: TButton);
var
Section: string;
begin
Section := 'Object'
//Properties you want to save go here
end;
begin
Ini := TMemIniFile.Create(FileName);
////For reference, the answer provided would go here
try
WhatYouAreSaving(Object);
Ini.UpdateFile;
finally
Ini.Free;
end;
end;
要清除 ini 文件的内容,请在 Ini := TMemIniFile.Create(FileName);
Erases all data from the INI file in memory.
Call Clear to erase all data from the INI file that is currently buffered in memory. All sections, keys, and values are erased.
要删除 ini 文件中的部分,请使用 TMemIniFile.EraseSection。