我正在尝试读取一个简单的文本文件,但每当我使用该功能时
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;
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;