正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
x
版本比较主要用于制作补丁时采用,从注册表获取版本字窜代码进行比较或者直接使用文件信息中的版本来进行比较,从而判断是否安装相应的补丁。
- //从注册表中获取SVN客户端TortoiseSVN的版本号
- function getSVNClientVersion (): String;
- begin
- RegQueryStringValue(HKCU , 'Software\TortoiseSVN','CurrentVersion', result);
- end;
- //此函数用于截取版本号数字
- procedure DecodeVersion (verstr: String; var verint: array of Integer);
- var
- i,p: Integer; s: string;
- begin
- verint := [0,0,0,0];
- i := 0;
- while ((Length(verstr) > 0) and (i < 4)) do
- begin
- p := pos (',', verstr);
- if p > 0 then
- begin
- if p = 1 then s:= '0' else s:= Copy (verstr, 1, p - 1);
- verint[i] := StrToInt(s);
- i := i + 1;
- verstr := Copy (verstr, p+1, Length(verstr));
- end
- else
- begin
- verint[i] := StrToInt (verstr);
- verstr := '';
- end;
- end;
- end;
- // 此函数用于比较版本字符串
- // 若 ver1 > ver2 返回值 1
- // 若 ver1 = ver2 返回值 0
- // 若 ver1 < ver2 返回值 -1
- function CompareVersion (ver1, ver2: String) : Integer;
- var
- verint1, verint2: array of Integer;
- i: integer;
- begin
- SetArrayLength (verint1, 4);
- DecodeVersion (ver1, verint1);
- SetArrayLength (verint2, 4);
- DecodeVersion (ver2, verint2);
- Result := 0; i := 0;
- while ((Result = 0) and (i < 4)) do
- begin
- if verint1[i] > verint2[i] then
- Result := 1
- else
- if verint1[i] < verint2[i] then
- Result := -1
- else
- Result := 0;
- i := i + 1;
- end;
- end;
复制代码
|