如何覆盖INI文件

时间:2017-03-10 10:06:56

标签: file delphi save ini

我有这个代码可以保存对象在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;

1 个答案:

答案 0 :(得分:3)

要清除ini文件的内容,请在Ini := TMemIniFile.Create(FileName);

之后致电Ini.Clear
  

清除内存中INI文件中的所有数据。

     

调用清除以清除当前在内存中缓冲的INI文件中的所有数据。所有部分,键和值都将被删除。

要删除ini文件中的部分,请使用TMemIniFile.EraseSection