Je viens de faire pour un programme une petite routine de verification de version (Par calcul pour être plus fiable). Vous pouvez testé et me donné votre avis. Le source est accéssible sur mon site à l'adresse http://koakdesign.info/?url=4d&val=52, mais je la met aussi ici

Code : Tout sélectionner
; +======================================================+
; | |
; +------------------------------------------------------+
; | COPYRIGHT(C)2007-2012, ALL RIGHT RESERVED KOAKDESIGN |
; +--------------+---------------------------------------+
; | Program type | PUREBASIC 4.51 |
; +--------------+---------------------------------------+
; | VER & REV | 0.0.1 |
; +--------------+---------------------------------------+
; | Program name | main.pb |
; +======================================================+
; +======================================================+
; | Original Version: 3.1.1 |
; +--------------+---------------------------------------+
; | Created by | GallyHomeCorp |
; | Graphix by | |
; +--------------+---------------------------------------+
; | Comments: | |
; +--------------+ |
; | |
; | |
; | |
; +======================================================+
; +======================================================+
; | Système d'Exploitation |
; +--------------+---------------------------------------+
; | Window | Oui |
; | Linux | Oui |
; | MacOS | Oui |
; +======================================================+
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
DisableASM
EnableExplicit
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
Procedure.b GetVersion(sLogicielVer.s, sOriginalVer.s)
; ROUTINE DE VERIFICATION DES VERSIONS.
Define i.l
Define j.l = 1
Define k.l
Define numStrA.l = CountString(sLogicielVer, ".")
Define numStrB.l = CountString(sOriginalVer, ".")
If numStrA > numStrB
For i=1 To numStrA - numStrB
sOriginalVer + ".0"
Next i
numStrB = numStrA
EndIf
If numStrB > numStrA
For i=1 To numStrB - numStrA
sLogicielVer + ".0"
Next i
numStrA = numStrB
EndIf
For i = numStrA + 1 To 1 Step -1
j * 10
k + j * (Val(StringField(sLogicielVer, i, ".")) - Val(StringField(sOriginalVer, i, ".")))
Next i
If k > 0
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; ****************************************************************************
; +--------------------------------------------------------------------------+
; | |
; +--------------------------------------------------------------------------+
If getVersion("10.10.25.84", "10.10.25")
Debug "Version Supérieur"
Else
Debug "Version Non Supérieur"
EndIf
GallyHC