Что нового

VersCompare - Сравнение версии файла

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Своего рода аналог встроенному _VersionCompare:

Код:
ConsoleWrite(_VersCompare('1.0.0.0', '1.0.0.1') & @CRLF)

Func _VersCompare($sVer1, $sVer2)
	Local $aVer1 = StringSplit($sVer1, '.')
	$sVer1 = ''
	
	For $i = 1 To $aVer1[0]
		$sVer1 &= ($sVer1 ? '.' : '') & StringFormat('%02s', $aVer1[$i])
	Next
	
	Local $aVer2 = StringSplit($sVer2, '.')
	$sVer2 = ''
	
	For $i = 1 To $aVer2[0]
		$sVer2 &= ($sVer2 ? '.' : '') & StringFormat('%02s', $aVer2[$i])
	Next
	
	$sVer1 = StringRegExpReplace($sVer1 & '.0.0.0', '^(\d\d?\.\d\d?\.\d\d?\.\d\d?).*', '\1')
	$sVer2 = StringRegExpReplace($sVer2 & '.0.0.0', '^(\d\d?\.\d\d?\.\d\d?\.\d\d?).*', '\1')
	
	If $sVer1 = $sVer2 Then
		Return 0
	EndIf
	
	Return ($sVer1 > $sVer2 ? 1 : -1)
EndFunc
 
Верх