Inno setup 如何在安装创建的INI文件中添加注释

Inno setup 如何在安装创建的INI文件中添加注释,inno-setup,pascalscript,Inno Setup,Pascalscript,我想知道是否有任何方法可以在INI文件中添加注释,以便用户了解设置可能具有的值 例如: 我当前的INI文件如下所示: [Section] Setting1=value Setting2=Value 我希望这样 [Section] ; acceptable values for Setting1 are ; A - ; B - Setting1=value ; acceptable values for Setting2 are ; X - ; Y - Setting2=Value 没有In

我想知道是否有任何方法可以在INI文件中添加注释,以便用户了解设置可能具有的值

例如:

我当前的INI文件如下所示:

[Section]
Setting1=value
Setting2=Value
我希望这样

[Section]
; acceptable values for Setting1 are
; A -
; B -
Setting1=value

; acceptable values for Setting2 are
; X -
; Y -
Setting2=Value

没有Inno设置函数或Windows API来处理INI文件中的注释

因此,要么您需要以编程方式创建整个INI文件,包括注释。或者代码只是添加注释;下面是一个例子

const
注释前缀=';';
函数SetIniComment(
文件名:字符串;节:字符串;键:字符串;注释:字符串):布尔值;
变量
线条:柏油纹;
行:字符串;
不安全:字符串;
一、 I2,P:整数;
开始
结果:=假;
{加载INI文件行}
如果LoadStringsFromFile(文件名,行),则
开始
日志(格式('读取%d行',[GetArrayLength(行)]);
{迭代行以查找节和键}
对于I:=0到GetArrayLength(行)-1 do
开始
行:=行[I];
{这是一节的开始吗?}
如果(长度(线)>0)和(线[1]='['),则
开始
P:=位置(']',行);
如果P>0,则
开始
分类:=修剪(复制(第2行,P-2));
结束;
结束
其他的
{我们在“我们的”区吗}
如果CompareText(第四节)=0,则
开始
P:=位置('=',行);
{这是“我们的”钥匙吗?}
如果(P>0)和
(CompareText(Trim(Copy(Line,1,P-1)),Key)=0)然后
开始
{如果前一行已经有注释,请替换它}
如果(长度(线[I-1])>0)和
(第[I-1][1]行=注释前缀)然后
开始
日志(格式(“替换第%d行的现有注释,[I-1]);
行[I-1]:=CommentPrefix+''注释;
结束
其他的
开始
{如果还没有注释,请插入新的注释行}
日志(格式('在第%d行插入注释,[I]);
SetArrayLength(行,GetArrayLength(行)+1);
对于I2:=GetArrayLength(行)-1向下到I+1 do
开始
行[I2]:=行[I2-1];
结束;
行[I]:=CommentPrefix+“”+注释;
结束;
日志(格式('写入%d行',[GetArrayLength(行)]);
结果:=SaveStringsToFile(文件名,行,False);
打破
结束;
结束;
结束;
结束;
如果没有结果的话
开始
日志(“未找到节/键”);
结束;
结束;
过程CurStepChanged(CurStep:TSetupStep);
变量
文件名:字符串;
开始
如果CurStep=ssPostInstall,则
开始
文件名:=ExpandConstant(“{app}\my.ini”);
塞蒂尼评论(
文件名,'Section','Setting1','Setting1的可接受值为A,B');
塞蒂尼评论(
文件名,'Section','Setting2','Setting1的可接受值为X,Y');
结束;
结束;
尝试使用“#”前缀将行标记为注释:

[Section]
# acceptable values for Setting1 are
# A -
# B -
Setting1=value

不是由安装程序创建INI,而是创建INI的模板,将其放在源目录中,然后由安装程序修改。对于我的INI文件,模板不是固定的。根据用户选择的条件,在INI文件中添加和删除条目。是否有其他方法可以在[INI]部分添加一些调用,在实际的INI文件中添加一行注释,然后您可以在安装结束时将INI读取到字符串,进行更改,并再次将字符串流式传输到文件。或者,您可以准备多个模板,并在用户从安装程序中确定后使用特定模板。问题是如何让Inno安装程序添加注释。这实际上是我正在寻找的,我可以确认它是否有效。谢谢,维克