我有这个代码可以保存对象在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;
答案 0 :(得分:3)
要清除ini文件的内容,请在Ini := TMemIniFile.Create(FileName);
清除内存中INI文件中的所有数据。
调用清除以清除当前在内存中缓冲的INI文件中的所有数据。所有部分,键和值都将被删除。
要删除ini文件中的部分,请使用TMemIniFile.EraseSection。