如何分隔INI文件中的部分?

时间:2011-06-04 19:12:27

标签: delphi ini

当保存到INI文件时,特别是当定义了多个部分时,数据将一起保存,部分之间没有任何行。

为了进行外部编辑,将每个部分与换行符分开会很方便,以便更容易查看和编辑INI文件。

例如:

Standard Ini

[GENERAL]
value1=0
value2=somestring
[ADVANCED]
type=1
autosave=0
[OTHER]
showatstartup=1

Ini有分隔线

[GENERAL]
value1=0
value2=somestring

[ADVANCED]
type=1
autosave=0

[OTHER]
showatstartup=1

如何做到这一点?

4 个答案:

答案 0 :(得分:12)

最简单的方法是使用TMemIniFile而不是TIniFile打开.ini文件。它的工作方式相同,但是当它保存(UpdateFile)时,会在各个部分之间自动添加空格。

答案 1 :(得分:9)

加载文件并在每个部分名称前插入空行。这是一个功能:

procedure InsertSectionLineBreaks(const IniFile: TFileName);
var
  f: TStrings;
  i: Integer;
begin
  f := TStringList.Create;
  try
    f.LoadFromFile(IniFile);
    for i := Pred(f.Count) downto 1 do
      if (f[i] <> '') and (f[i][1] = '[') then
        f.Insert(i, '');
    f.SaveToFile(IniFile);
  finally
    f.Free;
  end;
end;

请注意,如果部分名称之前已经有一个空行,则此代码将添加另一个。假设我们不需要在文件的 first 部分上方添加空行,循环下降到1而不是零。

答案 2 :(得分:1)

手动添加行确实是一个可行的解决方案。另一种选择是创建自己的继承自TIniFile的自定义类,并改变行为以在节标题之前包含额外的换行符。

更新:如果要使用此方法,请使用TCustomIniFile作为基类,而不是TIniFile。

答案 3 :(得分:0)

为什么不使用简单的回车:添加(#13#10);