私のアプリケーション用のInno Setupインストーラ/アップデータを作成しています。今、私は、新しいバージョンが利用可能かどうかをチェックする方法を見つける必要があり、もしそれが利用可能であれば、すでにインストールされているバージョンに自動的にインストールされるべきです。バージョン番号を確認するInno Setupのキー値テキストファイルを解析します
特殊なケースは、バージョン番号が他のデータとファイル内にあることです。 Inno Setupのは次のようにルックスを読む必要が ファイル:
#Eclipse Product File
#Fri Aug 18 08:20:35 CEST 2017
version=0.21.0
name=appName
id=appId
は、私はすでにそれだけでバージョン番号を持つテキストファイルを読み取るスクリプトを使用してアプリケーションを更新する方法を発見しました。 Inno setup: check for new updates
私の場合は、インストーラには必要ないデータが多く含まれています。ファイルからバージョン番号を解析できるスクリプトを作成するのに助けてくれますか?
私が既に持っているコードは次のようになります。
function GetInstallDir(const FileName, Section: string): string;
var
S: string;
DirLine: Integer;
LineCount: Integer;
SectionLine: Integer;
Lines: TArrayOfString;
begin
Result := '';
Log('start');
if LoadStringsFromFile(FileName, Lines) then
begin
Log('Loaded file');
LineCount := GetArrayLength(Lines);
for SectionLine := 0 to LineCount - 1 do
Log('File line ' + lines[SectionLine]);
if (pos('version=', Lines[SectionLine]) <> 0) then
begin
Log('version found');
S := RemoveQuotes(Trim(Lines[SectionLine]));
StringChangeEx(S, '\\', '\', True);
Result := S;
Exit;
end;
end;
end;
しかし、スクリプトの実行時にバージョン文字列がライン上にあるかどうかをチェックするためのチェックが動作しません。
それは時々[InnoSetupの –
可能性のある重複したように見えますが、スタックオーバーフローは、無料のコーディングサービスではありません:読み取りによって、変数の宣言方法ファイルから](https://stackoverflow.com/questions/14530504/innosetup-how-to-declare-a-variable-by-reading-from-a-file) – Miral
INIファイルですか?セクションの開始はありますか?それとも、これは本当にファイル全体ですか? –