Delphi 判断比较版本号,来自百度AI的代码
在Delphi中,可以使用以下代码来判断比较版本号:
function CompareVersion(const Version1, Version2: string): Integer;
var
Version1Parts, Version2Parts: TStringList;
i: Integer;
begin
Version1Parts := TStringList.Create;
Version2Parts := TStringList.Create;
try
Version1Parts.StrictDelimiter := True;
Version1Parts.Delimiter := '.';
Version1Parts.DelimitedText := Version1;
Version2Parts.StrictDelimiter := True;
Version2Parts.Delimiter := '.';
Version2Parts.DelimitedText := Version2;
for i := 0 to Max(Version1Parts.Count, Version2Parts.Count) - 1 do
begin
if i >= Version1Parts.Count then
Result := -1
else if i >= Version2Parts.Count then
Result := 1
else
begin
if StrToIntDef(Version1Parts[i], 0) > StrToIntDef(Version2Parts[i], 0) then
Result := 1
else if StrToIntDef(Version1Parts[i], 0) < StrToIntDef(Version2Parts[i], 0) then
Result := -1
else
Result := 0;
end;
if Result <> 0 then
Break;
end;
finally
Version1Parts.Free;
Version2Parts.Free;
end;
end;
使用示例:
var
Version1, Version2: string;
CompareResult: Integer;
begin
Version1 := '1.2.3';
Version2 := '1.2.4';
CompareResult := CompareVersion(Version1, Version2);
if CompareResult = 0 then
ShowMessage('版本号相等')
else if CompareResult < 0 then
ShowMessage('Version1 小于 Version2')
else
ShowMessage('Version1 大于 Version2');
end;
以上代码可以用于比较两个版本号的大小关系。如果返回值为0,则表示两个版本号相等;如果返回值小于0,则表示Version1小于Version2;如果返回值大于0,则表示Version1大于Version2。
来源于百度AI,直接编译提示一个警告:[dcc32 Warning] : W1035 Return value of function ‘CompareVersion’ might be undefined,可在过程前加入语句:Result := 0;