Funktionreferenz


_VersionCompare

Beschreibung anzeigen in

Vergleicht zwei Dateiversionen auf Gleichheit

#include <Misc.au3>
_VersionCompare ( $sVersion1, $sVersion2 )

Parameter

$sVersion1 Der erste Versionswert
$sVersion2 Der zweite Versionswert

Rückgabewert

Erfolg: Folgende Werte:
0 - Beide Versionen sind gleich
1 - Version 1 ist höher
-1 - Version 2 ist höher
Fehler: @error wird im Falle eines katastrophalen Fehlers gesetzt

Bemerkungen

Diese Funktion versucht zuerst einen numerischen Vergleich, danach einen lexikographischen.
Siehe @extended für Details welches Verfahren angewandt wurde.
Numerische Versionen können mit einem Buchstaben enden, wie z. B. "3.3.1c"

Beispiel

Beispiel 1

#include <Misc.au3>
#include <MsgBoxConstants.au3>

Global $g_sResult = ""

Check_VersionCompare("25.2.1", "5.2.1", 1)
Check_VersionCompare("5.12.0", "5.2.1", 1)
Check_VersionCompare("10.0.0.0", "12,0,0,0", -1)

Check_VersionCompare("1.2.1", "1.10", -1)
Check_VersionCompare("1.11.1b", "1.2", 1)
Check_VersionCompare("1.1b", "1.11c", -1)
Check_VersionCompare("1.11b", "1.1c", 1)
Check_VersionCompare("5.2.1", "5.2.1a", -1)
Check_VersionCompare("5.2.1", "5.2.1", 0)
Check_VersionCompare("5.2.1", "5.2.1.0", 0)
Check_VersionCompare("5.2.1a", "5.2.1.0", 1)
Check_VersionCompare("5.2.1a", "5.2.1.1", -1)
Check_VersionCompare("5.2.1b", "5.2.1.1a", -1)
Check_VersionCompare("5.2.1b", "5.2.1a", 1)
Check_VersionCompare("5.2.1a", "5.2.1a", 0)
Check_VersionCompare("5.2.1a", "5.2.1b", -1)

MsgBox($MB_SYSTEMMODAL, '_VersionCompare Ergebnisse', $g_sResult)

Func Check_VersionCompare($sVersion1, $sVersion2, $iReturn)
    Local $iRet = _VersionCompare($sVersion1, $sVersion2)
    Local $iExtended = @extended
    $g_sResult &= '"' & $sVersion1 & '" zu "' & $sVersion2 & @TAB & " Rückgabewert " & $iRet
    If $iRet <> $iReturn Then $g_sResult &= " anstelle von " & $iReturn
    $g_sResult &= @TAB & "@extended = " & $iExtended & @CRLF
EndFunc   ;==>Check_VersionCompare

Beispiel 2

#include <Misc.au3>

Global $datei_1 = "3.3.10.2"
Global $datei_2 = "3.3.14.2"
Global $vergleich = _VersionCompare($datei_1, $datei_2)

If $vergleich = 1 Then
    MsgBox(64, "Vergleich", "Datei 1 hat die neuere Versionsnummer")
ElseIf $vergleich = -1 Then
    MsgBox(64, "Vergleich", "Datei 2 hat die neuere Versionsnummer")
Else
    MsgBox(64, "Vergleich", "Beide Dateien haben die gleiche Versionsnummer")
EndIf