You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup安装时如何在生成的INI文件中添加空行?

在Inno Setup中生成带空行的INI文件

Inno Setup的内置[INI]段无法直接在配置项之间插入空行,要实现你要的格式化效果,得通过Pascal脚本手动处理INI文件,以下是两种可行方案:

方案1:手动构建带空行的INI内容并写入

直接在安装完成后拼接包含空行的INI内容,写入目标文件:

procedure CurStepChanged(CurStep: TSetupStep);
var
  IniPath: String;
  IniContent: String;
  SrcDrive: String;
begin
  if CurStep = ssPostInstall then
  begin
    IniPath := ExpandConstant('{app}\game.ini');
    SrcDrive := ExpandConstant('{drive:{src}}');
    
    // 拼接带空行的INI内容,#13#10对应Windows换行符,连续两个就是空行
    IniContent := 
      '[Nancy Data]' + #13#10 + #13#10 +
      'CDDrive1=' + SrcDrive + #13#10 +
      'CDDrive2=' + SrcDrive + #13#10 +
      'HDDrive=' + SrcDrive + #13#10 + #13#10 +
      'IDPath=' + ExpandConstant('{app}\Нэнси Дрю. Секреты могут убивать') + #13#10 +
      'HDVideoPath=' + ExpandConstant('{app}\Нэнси Дрю. Секреты могут убивать\HDVideo\') + #13#10;

    // 写入文件,最后一个参数是编码,按需调整
    SaveStringToFile(IniPath, IniContent, False, CP_OEMCP);
  end;
end;

说明

  • ssPostInstall阶段确保在所有安装操作完成后执行
  • #13#10是Windows系统的换行符,连续两个就会生成空行
  • 如果需要保留原有INI文件的其他内容,这种方法需要把所有配置项都手动拼接进去

方案2:用[INI]段生成后再插入空行

如果已经通过[INI]段生成了基础配置,只想补加空行,可以读取文件内容后修改:

procedure CurStepChanged(CurStep: TSetupStep);
var
  IniPath: String;
  Lines: TStringList;
  I: Integer;
  TargetKey: String;
begin
  if CurStep = ssPostInstall then
  begin
    IniPath := ExpandConstant('{app}\game.ini');
    TargetKey := 'HDDrive=' + ExpandConstant('{drive:{src}}');
    Lines := TStringList.Create;
    
    try
      Lines.LoadFromFile(IniPath);
      // 从后往前遍历,找到目标键后插入空行
      for I := Lines.Count - 1 downto 0 do
      begin
        if Lines[I] = TargetKey then
        begin
          Lines.Insert(I + 1, ''); // 插入空行
          Break;
        end;
      end;
      // 保存修改后的文件
      Lines.SaveToFile(IniPath);
    finally
      Lines.Free; // 释放资源
    end;
  end;
end;

说明

  • 用TStringList读取INI文件的每一行,找到指定键的行后,在下方插入空字符串(即空行)
  • 从后往前遍历可以避免插入行后影响后续索引的问题

关于Format函数的说明

你找到的Format函数主要用于格式化单个字符串(比如把变量嵌入模板),它没法直接用来给INI文件的配置项之间添加空行,因为[INI]段生成内容时会自动忽略手动添加的空行,必须通过脚本直接操作文件内容才能实现需求。

内容的提问来源于stack exchange,提问作者livingsamurai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:25:46