[R] un petit script de màj ... qui marche pas.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

[R] un petit script de màj ... qui marche pas.

#1

Message par GhostLine »

Dans ma folle lancée, je continue à scripter ^^ cette fois-ci, je pense avoir un problème lié à l'utilisation des array, mais je n'arrive pas à comprendre en quoi je me trompe ... si une âme charitable pouvait me dépanner :)
► Afficher le texte
Sinon, comment puis je faire pour minimiser le "découpage" de mes lignes de version ? une ligne du fichier de version ressemble à ça :
tableau_original.ods=1.10

Edit : plutôt que de débiter du code illisible et faux au km, voilà comment je vois la chose :
1- on récupère la ligne et on la stocke (déjà fait)
2- on récupère tout ce qui est à droite du = (1.10 dans mon exemple)
3- on récupère les valeurs de part et d'autre du . (1 et 10)

Après, c'est tout facile de comparer avec un autre n° de version : en premier, on regarde si le chiffre de gauche est supérieur, puis le chiffre de droite si égalité.

PS : je sais qu'il y a un script de vérification de version qui a été mis à disposition sur ce forum, mais 1/ il est complètement incompréhensible pour un néophyte comme moi 2/ c'est quand même plus marrant de faire les choses par soit même ^^

Merci d'avance pour le coup de main ^^
Modifié en dernier par GhostLine le mar. 07 juil. 2009 15:42, modifié 1 fois.
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#2

Message par jumby »

► Afficher le texte
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#3

Message par GhostLine »

Merci de ton aide rapide !

Lorsque je tente de le compiler ici, j'ai le message

>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Documents and Settings\Administrateur\Mes documents\testftp.au3"
C:\Documents and Settings\Administrateur\Mes documents\testftp.au3 (28) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$line[$i] = FileReadLine($lecture_original)
^ ERROR
>Exit code: 1 Time: 0.312
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#4

Message par jumby »

As-tu laissé les 2 lignes suivantes au début de ton script ?

Code : Tout sélectionner

local $line1[10]
local $line[10]
 
Je n'ai pas d'erreur pour ma part.
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#5

Message par GhostLine »

Oui, c'est bizarre ... ça fonctionne sur mon PC du boulot, mais pas le perso ... encore une bonne raison de ne pas ramener du travail à la maison :lol:

Edit : en fait, ça me le fait au bout d'un certain nombre de tests, comme si $line[] et $line1[] ne se vidaient pas à la fin du programme ...
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#6

Message par ani »

les pc 1 et 2 sont tout deux du même système, même pack ?

Que correspond line[10] ?

les doubles whiles je vous ai déjà dit que çà ne servait à rien.
AU lieu de local mettez plutôt global ensuite toute variables déclaré indiqué les en dim.

pas suivit non plus les divers indices $i & $j qui se font rajouter + 1

N'ayant pas de ftp, il me sera impossible de tester la partie connect.
Pour l'envoi du fichier faudrai le penser autrement.

Pour les fichiers a comparer, hm vaut voir le tout ;)
elle ne dispose que de deux lignes ?

Pour vérifier indique des consolewrite ou crée un fichier log.

là je fait pas avancer le chmilblik :D
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#7

Message par GhostLine »

J'ai rien compriiiiiiis :roll:
Avatar du membre
jumby
Niveau 5
Niveau 5
Messages : 118
Enregistré le : jeu. 12 juin 2008 17:50
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#8

Message par jumby »

Avez-vous l'erreur suivante :
'Array variable has incorrect number of subscripts or subscript dimension range exceeded.:' ?

Si c'est le cas, le problème est au niveau de la boucle While, le sortie de boucle ne ce fait pas donc vos array sont supérieurs à 9. Ce qui est contraire à ce que vous aviez annoncé au début du script par : Local $Line[10] et Local $Line1[10].

Vos fichiers concernant les numéros de version, ont-ils plusieurs lignes ?
La suite du code est fonctionnel, ce qui laisse à pensé que vos fichiers n'ont qu'une seule et unique ligne. Dans ce cas, essayez avec le code suivant :
► Afficher le texte
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#9

Message par GhostLine »

jumby> actuellement, le fichier de version n'a que deux lignes, comme le suggère le code. Je n'ai pas prévu de "pousser" plus loin le nombre de fichiers à vérifier.
Votre code est par ailleurs complètement fonctionnel, il me donne les bonnes valeurs pour les deux fichiers.

ani> alors, de ce que j'ai compris :)
- oui, mon PC perso et mon PC de boulot sont tous deux sur XP Pro, SP3.
- $line[10] correspond à l'origine de mon script à un tableau contenant les n° de version des deux fichiers présents sur le système (pour une raison nébuleuse, je n'ai jamais réussi à faire fonctionner le programme avec $line[2] ...) ; $line1[10], quant à lui, contient les n° de version des deux fichiers présents sur le serveur FTP. Suite à comparaison, si les valeurs étaient différentes, je récupérais systématiquement les fichiers du FTP.
- je plaide non coupable pour les while, je n'utilise pas cette fonction ^^
- merci pour le conseil (de local vers global avec les dim), je vais zieuter ça.
- les $i et $j servent à la fois à déterminer la ligne que l'on lit dans le fichier de version et la position dans $line[].
- pour le FTP, je me suis installé très rapidement Filezilla Server, très léger et pratique pour faire des tests (et accessoirement, ça fonctionne ^^).

Edit !

J'ai pas mal avancé pour trouver une solution à ce problème d'exécution ; j'ai même trouvé une "solution" qui rend mon code plus clair (que demande le peuple). J'intègre proprement le code de jumby et je partage :)
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] un petit script de màj ... qui marche pas.

#10

Message par GhostLine »

Bon, j'ai décidé d'arrêter de faire ma forte tête, histoire que le projet avance (mine de rien, c'est une vraie demande professionnelle :p). Voilà ce que ça donne :
► Afficher le texte
Si quelqu'un voit des pistes d'amélioration, je suis preneur, cela dit :)
Répondre