在Inno设置中按行阅读文本文件line 我正在尝试使用INNO设置读取线路文本文件。 我尝试了此处提到的这一:https://jrsoftware.org/ispphelp/index.php?topic=fileRead 功能showlines():布尔值; var ...

问题描述 投票:0回答:1
function ShowLines(): Boolean; var list: Integer; begin list := FileOpen(ExpandConstant('{tmp}\file.txt')); if !FileEof(list) then begin try repeat MsgBox(FileRead(list), mbInformation, MB_OK); until !FileEof(list); finally FileClose(list); end; end; Result := True; end;

但它将在

FileOpen(也许是在其他文件功能上)上出现错误,即它是未知的标识符。问题在哪里? 文件小于50kb。

您试图从Pascal脚本调用的所有函数实际上都是PREPROCESSOR函数。 Pascal脚本没有可以按行读取文件(或任何类型的块)的内置函数。
您可以使用Winapi文件函数来实现该功能,例如

CreateFile

ReadFile
inno-setup pascalscript
1个回答
4
投票

但是,如果文件不太大,则可以简单地使用内置函数LoadStringsFromFile

。例如,请参见文件中的读字符串,并提供选项选择安装

仿效问题:试图检测Inno设置Code中锁定文件时的“未知标识符'FileOpen'”。
查看您正在从
{tmp}
读取文件,实际上是您正在读取从安装程序本身提取的临时文件。如果是这种情况,则意味着您已经在编译时间上可用的文件。在这种情况下,您确实可以使用预处理器函数在编译时读取文件。

但需要完全不同的语言/语法代码。一些例子:

如何在Inno设置的[Custmomessages]部分中使用通配符?
我可以在Inno设置中使用。

    

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.