2

組み込み関数があるように見えますがVerCompare、1.2.3.4などの4つのコンポーネントすべてを持つ文字列が必要です。私はInstallScriptで文字列操作を試みたことがなく、誰かがバージョン文字列を取得して必要に応じて.0を追加するコードをすでに持っていることを望んでいました。

4

1 に答える 1

7

エラーチェックが必要ですが、一般的な考え方は次のとおりです。

prototype NUMBER CompareVersions(STRING, STRING);
prototype STRING FormatVersion(STRING);

function NUMBER CompareVersions(leftVersion, rightVersion)
    STRING formattedLeftVersion, formattedRightVersion;
begin
    formattedLeftVersion = FormatVersion(leftVersion);
    formattedRightVersion = FormatVersion(rightVersion);

    return VerCompare(formattedLeftVersion, formattedRightVersion, VERSION);
end;

function STRING FormatVersion(version)
    STRING formattedVersion;
    LIST tokens;
    NUMBER count;
begin
    tokens = ListCreate(STRINGLIST);
    StrGetTokens(tokens, version, ".");
    count = ListCount(tokens);
    ListSetIndex(tokens, LISTLAST);
    while (count < 4)
        ListAddString(tokens, "0", AFTER);
        count = count + 1;
    endwhile;
    StrPutTokens(tokens, formattedVersion, ".", FALSE);
    ListDestroy(tokens);
    return formattedVersion;
 end;
于 2012-11-20T15:34:55.693 に答える