Я пытаюсь прочитать простой текстовый файл, но всякий раз, когда я использую эту функцию 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;
Извини за поздний ответ. Но спасибо за помощь. Это работает :)