<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/Inno-SetUp-Compare-Software-version/</link>
<title><![CDATA[Inno Setup获取软件版本值并且对比]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[学习心得]]></category>
<pubDate>Fri, 14 Oct 2011 15:25:44 +0000</pubDate> 
<guid>https://www.heckjj.com/Inno-SetUp-Compare-Software-version/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 微软雅黑;">项目中最近做了个SVN代码变更的插件，需要做一个安装盘，发现插件只能用在TortoiseSVN 1.6.x或者以上的版本，这就需要安装盘中在安装时提醒用户安装1.6.x或者以上的SVN客户端版本写了几个公共方法实现如下的版本对比。<br/><span style="color: #008000;">//从注册表中获取SVN客户端TortoiseSVN的版本号</span><br/>function getSVNClientVersion (): String;<br/>begin<br/>&nbsp;&nbsp;RegQueryStringValue(HKCU , 'Software&#92;TortoiseSVN','CurrentVersion', result);<br/>end;<br/><br/><span style="color: #008000;">//此函数用于截取版本号数字</span><br/>procedure DecodeVersion (verstr: String; var verint: array of Integer);<br/>var<br/>&nbsp;&nbsp;i,p: Integer; s: string;<br/>begin<br/>&nbsp;&nbsp;verint := [0,0,0,0];<br/>&nbsp;&nbsp;i := 0;<br/>&nbsp;&nbsp;while ((Length(verstr) > 0) and (i < 4)) do<br/>&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;p := pos (',', verstr);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if p > 0 then<br/>&nbsp;&nbsp;&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if p = 1 then s:= '0' else s:= Copy (verstr, 1, p - 1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verint[i] := StrToInt(s);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i := i + 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verstr := Copy (verstr, p+1, Length(verstr));<br/>&nbsp;&nbsp;&nbsp;&nbsp;end<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verint[i] := StrToInt (verstr);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;verstr := '';<br/>&nbsp;&nbsp;&nbsp;&nbsp;end;<br/>&nbsp;&nbsp;end;<br/>end;<br/></span><span style="font-family: 微软雅黑;"><br/><span style="color: #008000;"><br/>// 此函数用于比较版本字符串<br/>// 若 ver1 > ver2 返回值&nbsp;&nbsp;1<br/>// 若 ver1 = ver2 返回值&nbsp;&nbsp;0<br/>// 若 ver1 < ver2 返回值 -1</span><br/>function CompareVersion (ver1, ver2: String) : Integer;<br/>var<br/>&nbsp;&nbsp;verint1, verint2: array of Integer;<br/>&nbsp;&nbsp;i: integer;<br/>begin<br/>&nbsp;&nbsp;SetArrayLength (verint1, 4);<br/>&nbsp;&nbsp;DecodeVersion (ver1, verint1);<br/>&nbsp;&nbsp;SetArrayLength (verint2, 4);<br/>&nbsp;&nbsp;DecodeVersion (ver2, verint2);<br/>&nbsp;&nbsp;Result := 0; i := 0;<br/>&nbsp;&nbsp;while ((Result = 0) and (i < 4)) do<br/>&nbsp;&nbsp;begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;if verint1[i] > verint2[i] then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result := 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if verint1[i] < verint2[i] then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result := -1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result := 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;i := i + 1;<br/>&nbsp;&nbsp;end;<br/>end;<br/></span><br/>Tags - <a href="https://www.heckjj.com/tags/inno/" rel="tag">inno</a> , <a href="https://www.heckjj.com/tags/setup/" rel="tag">setup</a> , <a href="https://www.heckjj.com/tags/%25E7%2589%2588%25E6%259C%25AC%25E6%25AF%2594%25E8%25BE%2583/" rel="tag">版本比较</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/Inno-SetUp-Compare-Software-version/#blogcomment</link>
<title><![CDATA[[评论] Inno Setup获取软件版本值并且对比]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/Inno-SetUp-Compare-Software-version/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>