在 Inno Setup 中逐行读取文本文件

Read text file line by line in Inno Setup

我正在尝试使用 Inno Setup 逐行读取文本文件。

我试过这里提到的这个:https://jrsoftware.org/ispphelp/index.php?topic=fileread

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 Script 调用的所有函数实际上是 preprocessor functions。 Pascal 脚本没有 built-in 可以按行(或任何类型的块)读取文件的功能。

您可以使用 WinAPI 文件函数来实现它,例如 CreateFile and ReadFile

但是如果文件不是太大,你可以简单地使用built-in函数LoadStringsFromFile. For an example, see Read strings from file and give option to choose installation

类似问题:.


看到您正在读取来自 {tmp} 的文件,很可能您实际上正在读取从安装程序本身提取的临时文件。如果是这种情况,则意味着您已经在编译时获得了该文件。在这种情况下,您确实可以使用预处理器函数来读取 compile-time.

上的文件