在 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.
上的文件
我正在尝试使用 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.