.ini文件中的第一部分标题由Inno Setup复制

罗伯特·弗兰克

我不知道为什么下面的行在已经包含该名称的节文件中创建第二个重复节frmR.ini

SetIniString('frmR', 'update', 'true', 'C:\junk\test.ini');

运行安装程序test.ini文件内容

在此处输入图片说明

我们认为这可能是编码问题(我们正在使用5.6.1(u)版本)。但是十六进制查看器中的节名称也相同:

test.ini十六进制文件内容

在此处输入图片说明

test.ini文件的之前和之后版本位于此处:https : //drive.google.com/open?id=1vamZxgTvYpAQcOwOnrTpGG63_Bg7i0Js

下面是.iss演示此问题的准系统文件。test.ini(从上面的谷歌云端硬盘链接)命名的文件夹中C:\junk运行前。

[Code]

procedure DeinitializeSetup();
begin
  SetIniString('frmR', 'update', 'true', 'C:\junk\test.ini'); 
end;

我发现仅当该部分是文件中第一部分时,才会出现此问题换句话说,下面的文件可以正常工作(不添加任何重复的部分):

[Test section]
Test=test
[frmR]
Top=28
Left=0

上面的发现不能解决问题,因为我没有简单的方法来确保要写入的部分不是文件的第一部分。

马丁·普里克里(Martin Prikryl)

正如@Sertac所说,肯定是BOM。我认为Inno Setup不会使用BOM创建INI文件。BOM表位于第一个部分名称的前面。INI文件读取/写入功能认为文件的第一行无效-不会将其标识为节开头。删除物料清单。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章