Препроцессор Inno Setup может читать файл, используя FileOpen, но не используя ReadIni. - PullRequest
1 голос
/ 04 октября 2019

Это пояснение требуется к существующему сообщению, указанному ниже
Как объявить переменную препроцессора Inno Setup, читая из файла

Чтение значения из файла .txt с использованиемFileOpen работает отлично, при чтении файла .ini с использованием ReadIni возвращает пустую строку.

Код для чтения из файла txt:

#define VerFile FileOpen("common\GlobalConfig.txt")
#define AppVer FileRead(VerFile)
#expr FileClose(VerFile)
#undef VerFile

Файл txt имеетстрока Innovation .

Код для чтения из INI-файла:

#define AppVer ReadIni("common\GlobalConfig.ini", "Productname", "Product")

Содержимое INI-файла:

[Productname]
Product=Innovation

Оба файла находятся в одной папке.

Заранее спасибо!

1 Ответ

0 голосов
/ 04 октября 2019

Относительные пути в ReadIni разрешены в текущий рабочий каталог, что, в частности, в Inno Setup IDE не является каталогом скриптов.

Используйте абсолютные пути, используя SourcePath предопределенную переменную :

#define AppVer ReadIni(SourcePath + "\common\GlobalConfig.ini", "Productname", "Product")

Для FileOpen ISPP делает это автоматически, но не для ReadIni.


Хотя это не ваш случай, другая возможность состоит в том, что что-то не так с INI-файлом. Как это должно быть UTF-8 / ASCII без спецификации или UTF-16 LE (с или без спецификации).

...