Page 1 sur 1

[..] Problème MAJ Autoit

Posté : sam. 27 sept. 2014 13:33
par walkson
Bonjour,
J'ai un gros problème avec les mises à jour Autoit, je m'explique:
J'essaye un script du forum us et Scite m'indique l'absence d'une multitude de variables. Je passe un message pour l'indiquer et on me répond qu'avec une mise à jour, mes problèmes seront résolus, ce qui est le cas (en grande partie).
Puis je lance un autre script qui fonctionnait jusque là et, Paf ! Scite m'indique "error: _StringReverse(): undefined function.". J'ouvre l'include concerné et là:

Code : Tout sélectionner

; #CURRENT# =====================================================================================================================
; _HexToString
; _StringBetween
; _StringEncrypt
; _StringExplode
; _StringInsert
; _StringProper
; _StringRepeat
; _StringTitleCase
; _StringToHex
 
_StringReverse() n'existe plus !?!
Je fais une recherche sur mon PC et je retrouve plusieurs versions de String.au3 dont la plus récente est

Code : Tout sélectionner

Func _StringReverse($sString)
    Return StringReverse($sString)
EndFunc   ;==>_StringReverse
et je comprends enfin.
Si je soulève le problème, c'est parce que ce n'est pas la première fois que ça m'arrive et je me retrouve confronté à un dilemme: Soit je fais les mises à jour et mes vieux scripts ne fonctionnent plus, soit je ne fais pas les MAJ et les nouveaux scripts ne fonctionnent pas.
Avez vous des solutions ? Comment faites vous ? Merci de vos réponses.

Re: [..] Problème MAJ Autoit

Posté : sam. 27 sept. 2014 14:26
par Tlem
La solution la plus logique serait de mettre à jour les scripts puisqu'ils ne sont pas compilés et donc probablement amenés à évoluer.

Envoyé depuis mon mobile en utilisant Tapatalk.

Re: [..] Problème MAJ Autoit

Posté : sam. 27 sept. 2014 15:45
par walkson
Bonjour Tlem,
En théorie, je suis d'accord avec vous. Mais en pratique, c'est une autre paire de manches ! Quand c'est vous qui avait écrit le script, ce n'est pas tjs évident de retrouver la bonne variable ou Funct mais si ce n'est pas vous l'auteur, cela relève de la gageure...
Bon nombre de scripts que j'ai récupérés me servent d'exemples
Je réfléchis à créer un dossier OldInclude et de renvoyer les includes sur ce dossier en cas de problème mais je ne sais pas si c'est la bonne solution

Re: [..] Problème MAJ Autoit

Posté : sam. 27 sept. 2014 16:44
par jchd
Je réfléchis à créer un dossier OldInclude et de renvoyer les includes sur ce dossier en cas de problème mais je ne sais pas si c'est la bonne solution
Non. La bonne solution est d'adapter les sources à l'évolution du langage et des includes standards.

Re: [..] Problème MAJ Autoit

Posté : sam. 27 sept. 2014 17:56
par mikell
Ben voyons...
Dans l'absolu c'est vrai que c'est l'idéal
Mais en pratique, tu te tapes des heures de taf pour mettre à jour les scripts concernés de ta bibliothèque, et à la release suivante rebelote :roll:
Entre les fonctions _Array* qui déconnent et les constantes qui changent de nom, t'es pas arrivé
Dixit Melba23 du forum US : "the backwards compatibility is not a priority" :mrgreen:

Alors oui il y a des solutions alternatives que personnellement j'utilise face à ce genre de souci
- extraire de l'include la(les) fonction(s) concernée(s) puis intégrer directement dans le script
- s'il y en a trop, récupérer l'ancien include et se faire un include custom (genre <Array3381.au3> ) au nom différent de celui de l'include officiel
Comme ça tes cheveux blanchissent moins vite ^^

Re: [..] Problème MAJ Autoit

Posté : sam. 27 sept. 2014 19:05
par jchd
Mouais, à condition de gérer les corrections d'erreurs.

Re: [..] Problème MAJ Autoit

Posté : sam. 27 sept. 2014 21:16
par Tlem
Les "Script breaking" ne sont pas si nombreux que ça. Je comprend que cela représente un certain travail, mais comme je l'ai déjà dit, si le script n'est pas compilé, c'est qu'il est nécessaire de le mettre à jour et donc de travailler dessus !

Si vous ne voulez pas êtres embêté avec les includes, compilez en Exe voir en A3x car les changements sur fonctions interne est plutôt rare.

Envoyé depuis mon appareil mobile.

Re: [..] Problème MAJ Autoit

Posté : dim. 28 sept. 2014 22:23
par walkson
Bonsoir,
Je voulais rajouter que l'on peut regretter l'absence d'informations sur les modifications des includes. Un txt dans le dossier include signalant les scripts modifiés ainsi que les fonctions ou les variables et surtout une date de modification dans l'entête du script. Ça règlerait pas mal de problèmes.
Si mon anglais n'était pas aussi mauvais, c'est une idée que je défendrais sur le forum us
Tlem a écrit :si le script n'est pas compilé, c'est qu'il est nécessaire de le mettre à jour et donc de travailler dessus !
Avec tous les exemples de scripts sur le forum dont un bon nombre n'est plus fonctionnel, bien du travail en perspective ! :P

Re: [..] Problème MAJ Autoit

Posté : dim. 28 sept. 2014 23:03
par orax
Il y a la page Script Breaking Changes in Recent Versions (disponible également dans le fichier d'aide) qui apporte ce type d'informations.

Re: [..] Problème MAJ Autoit

Posté : dim. 28 sept. 2014 23:08
par jchd
Qu'on le souhaite ou non, c'est quand même le prix à payer pour voir le langage évoluer, les bugs corrigés et les fonctions internes ou include standard améliorées.

Un source C de quelques années lève des tonnes de warnings et d'erreurs franches avec un compilateur aux normes actuelles, sans parler de C++. Pourtant les ressources humaines à la base ne sont pas comparables entre C[++] et AutoIt.

PLus ce que vient de poster orax à juste titre.