Page 1 sur 1

[R] Récupérer la version d'un fichier sur le net

Posté : jeu. 12 févr. 2015 21:23
par Bayo
Bonjour,

Est-il possible de récupérer la version d'un exe (fait en autoit) qui se trouve sur le net sans le télécharger(heberger sur googledrive et partagé), j'ai trouvé inetgetinfo qui me dit la taille du fichier mais je voudrai sa version pour, si elle est plus grande, que mon logiciel se mette à jour. Filegetversion n'arrive pas à récupérer la version.

Merci.
Cordialement.

Re: [..]Récupérer la version d'un fichier sur le net

Posté : jeu. 12 févr. 2015 21:25
par jguinch
Si c'est toi qui stocke le fichier sur le cloud, tu devrais te créer un fichier de référence qui te donne la version du fichier. Juste un fichier .txt (ou autre) que tu lis avec InetRead.
Sans ça, je crains que ça ne soit pas gagné...

Re: [..] Récupérer la version d'un fichier sur le net

Posté : jeu. 12 févr. 2015 21:50
par Bayo
ok ben avec InetRead, ca me va, oui je vais creer un fichier texte, c'est parfait merci

Re: [R] Récupérer la version d'un fichier sur le net

Posté : ven. 13 févr. 2015 11:19
par ZDS
Bonjour,

Je sais bien que le sujet est [R]ésolu, mais plus qu'un fichier txt, pour ma part je me suis plutôt orienté vers un fichier XML, ainsi je peux gérer le multi-versions et aussi plusieurs programmes à mettre à jour. A part ça sur le principe, c'est le même qu'avec INetRead :
► Afficher le texteScript
► Afficher le texteFichier XML
Et puis, vu que c'est pratique de comparer des versions (courtes au format ?.?x), ça peut toujours servir :

Code : Tout sélectionner

; Comparaison de numéros de versions
Func compareVersion($version1, $version2)
    Local $resultat = 0, $no_version = "0.0", $pattern = "^([0-9]+)\.([0-9]+)([a-z]?)$"
    If Not StringRegExp($version1, $pattern) Then $version1 = $no_version
    If Not StringRegExp($version2, $pattern) Then $version2 = $no_version
    If $version1 = $version2 Then Return 0
    If $resultat = 0 Then $resultat = Int(StringRegExpReplace($version1,$pattern,"$1")) - Int(StringRegExpReplace($version2,$pattern,"$1"))
    If $resultat = 0 Then $resultat = Int(StringRegExpReplace($version1,$pattern,"$2")) - Int(StringRegExpReplace($version2,$pattern,"$2"))
    If $resultat = 0 Then $resultat = Asc(StringRegExpReplace($version1,$pattern,"$3")) - Asc(StringRegExpReplace($version2,$pattern,"$3"))
    Return $resultat
EndFunc

Re: [R] Récupérer la version d'un fichier sur le net

Posté : ven. 13 févr. 2015 21:48
par Bayo
Merci pour ta solution, je regarderai si je peux l'utiliser :)

Re: [R] Récupérer la version d'un fichier sur le net

Posté : ven. 13 févr. 2015 23:08
par jguinch
En effet, c'est plus souple avec du XML. :wink:
Par contre pourquoi tu n'utilises pas _VersionCompare (Misc.au3) ? Quelle a la différence avec ta fonction compareVersion ?

Re: [R] Récupérer la version d'un fichier sur le net

Posté : dim. 15 févr. 2015 00:52
par ZDS
Je n'utilise pas _VersionCompare, car :
► Afficher le texte_VersionCompare
Le code est très (trop) complexe pour aussi peu de flexibilité. Ma fonction est beaucoup plus simple à comprendre et à utiliser, pour peu qu'on comprenne les RegExp. De plus la fonction de Valik ne se base que sur des chaines séparées par le même nombre de points/virgule (comme les valeurs retournées par FileGetVersion de base d'un programme compilé AutoIt). Alors que ma version peut s'adapter à toute autre gestion de version (la mienne étant proche d'un GoRoCo).

Après, il ne s'agit que de mon point de vue (duquel je considère un numéro 2.2b plus parlant qu'un 2.2.1.7).

Re: [R] Récupérer la version d'un fichier sur le net

Posté : sam. 14 mars 2015 12:41
par Bayo
Je reouvre le sujet car j'ai un soucis avec _VersionCompare, car lorsque que je compare une version1 avec une version2 comme ceci

version1=2.1.0.0
version2=2.0.0.0
_VersionCompare(version1,version2) me sort -1 alors qu'il devrait m'afficher 1
et si j'inverse _VersionCompare(version2,version1) il me sort 1 au lieu de -1

et en faisant le test :
version1=2.1.0.0
version2=2.1.0.0
_VersionCompare(version1,version2) il me sort 1 et si j'inverse il me sort -1 alors qu'il devrait m'afficher 0 dans les 2 cas.
je fait des msgbox à chaque fois de mes variables et les versions récupérées sont bien les bonnes.
_VersionCompare Bug.
Sachant qu'une version récupérée se trouve dans un fichier texte sur le net et l'autre est la version d'un exe en local.

Re: [..] Récupérer la version d'un fichier sur le net

Posté : sam. 14 mars 2015 13:18
par ZDS
Hello!

Un code de test serait plus parlant ^^ car si ça se trouve, les valeurs ne sont ce que tu sembles croire.

À bientôt!

Re: [..] Récupérer la version d'un fichier sur le net

Posté : sam. 14 mars 2015 13:55
par Bayo
désolé, c'est en postant le bout de code que j'ai vu le problème. désolé je suis trop id... :p
Merci