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