使用 Inno Setup LoadStringFromFile 总是给出“类型不匹配”

问题描述 投票:0回答:1

我正在尝试读取一个简单的文本文件,但每当我使用该功能时

LoadStringFromFile
它总是给我

类型不匹配。

我尝试读取的文本文件包含用户文档中文件夹的文件路径。类似于

c:\users\username\document\foldername\

我知道Inno Setup有一个用户文档的目录常量,但用户没有安装权限。使用管理员帐户运行安装程序时,目录常量将提供不同的文件路径。该文本文件具有我要用于安装的真实文件路径。

function getPath(Param: String) : String;
  var line: AnsiString;
begin
    Result := LoadStringFromFile(ExpandConstant('{commonpf64}\appfolder\sometextfile.txt'), line);
end;
inno-setup pascalscript
1个回答
2
投票

LoadStringFromFile
函数返回
Boolean
值,表示读取成功。实际内容在
S
参数(或代码中的
line
)中返回。

你的函数可能看起来像:

function getPath(Param: String): String;
var
  Path: string;
  Line: AnsiString;
begin
  Path := ExpandConstant('{commonpf64}\appfolder\sometextfile.txt');
  if LoadStringFromFile(Path, Line) then
  begin
    Result := Trim(Line); // Converts from AnsiString to string on the way
  end
    else
  begin
    RaiseException(Format('Error reading %s', [Path]));
  end;
end;
© www.soinside.com 2019 - 2024. All rights reserved.