当保存到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
如何做到这一点?
答案 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);