[R] Variable a deux dimensions "oublié" ?
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Variable a deux dimensions "oublié" ?
Bonjour a tous est a toutes !
Donc voilà j'ai un petit soucis avec mon script :
Mon programme lis d'abord des valeurs dans un .ini puis la stock dans une variable a deux dimensions suivantes :
a{$var}{0} = Iniread(.......)
a{$var}{1} = Iniread(.......)
($var vaut 0 et les données enregistrer sont des coordonées)
Jusque là tout va bien ! Le programme arrive a cliquer sur les coordonnées quand je lui demande exemple :
MouseClick("left", a{$var}{0}, a{$var}{1}, 1)
Aucun soucis !
Seulement quand mon script commence a attaqué les choses sérieuses, (le reste du programme) et qu'il reviens sur cette variable a deux dimensions, il me sort une erreur plutôt.. étrange. Il me trouve une erreur dans la ligne du mouseclick en me disant que "$var" est une variable inconnu (c'est l'erreur subscript with no array machin). Je prend donc mes précautions en écrivant et en lisant la $var dans un fichier .ini pour éviter que le script l'oublie, mais même avec ceci, le programme me retourne l'erreur. Je suppose donc que c'est la variable a deux dimensions qu'il a oublier est non le $var.
Je rappelle que mon script n'entre jamais dans la moindre fonction.
Merci de vos réponses !
Donc voilà j'ai un petit soucis avec mon script :
Mon programme lis d'abord des valeurs dans un .ini puis la stock dans une variable a deux dimensions suivantes :
a{$var}{0} = Iniread(.......)
a{$var}{1} = Iniread(.......)
($var vaut 0 et les données enregistrer sont des coordonées)
Jusque là tout va bien ! Le programme arrive a cliquer sur les coordonnées quand je lui demande exemple :
MouseClick("left", a{$var}{0}, a{$var}{1}, 1)
Aucun soucis !
Seulement quand mon script commence a attaqué les choses sérieuses, (le reste du programme) et qu'il reviens sur cette variable a deux dimensions, il me sort une erreur plutôt.. étrange. Il me trouve une erreur dans la ligne du mouseclick en me disant que "$var" est une variable inconnu (c'est l'erreur subscript with no array machin). Je prend donc mes précautions en écrivant et en lisant la $var dans un fichier .ini pour éviter que le script l'oublie, mais même avec ceci, le programme me retourne l'erreur. Je suppose donc que c'est la variable a deux dimensions qu'il a oublier est non le $var.
Je rappelle que mon script n'entre jamais dans la moindre fonction.
Merci de vos réponses !
Modifié en dernier par Kikoolol le mar. 24 févr. 2009 16:29, modifié 1 fois.
- jbnh
- Niveau 11

- Messages : 1932
- Enregistré le : ven. 02 mai 2008 14:54
- Localisation : Bruxelles
- Status : Hors ligne
Re: Variable a deux dimensions "oublié" ?
Bonjour,
Merci de prendre quelques secondes pour lire les règles de présentation d'un message et d'éditer votre titre.
Pour répondre au mieux à votre question, il serait intéressant de voir ce qui correspond aux choses sérieuses de votre programme, ou avoir la ligne qui coince...
Merci de prendre quelques secondes pour lire les règles de présentation d'un message et d'éditer votre titre.
Pour répondre au mieux à votre question, il serait intéressant de voir ce qui correspond aux choses sérieuses de votre programme, ou avoir la ligne qui coince...
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !
Merci
Merci
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: {..} Variable a deux dimensions "oublié" ?
On peut aussi dire certaines autres choses. 
Vous écrivez :mais un tableau à deux dimention s'utilise comme ceci :
Sans doute une erreur de transcription.
Ensuite pour un tableau il vaut mieux faire certaines choses avant :
1 - Déclarer le tableau et ses dimensions avant de l'utiliser :Sinon vous risquez le problème que vous avez évoqué.
2 - Généralement la dimension 0 d'un tableau est utilisée pour stocker le nombre de variables de la dimension.
Pour finir, comme vous l'a indiqué jbnh, lorsque vous faites une demande d'aide, un bout de code est plus parlant que 10 lignes d'explications.
Vous écrivez :
Code : Tout sélectionner
a{$var}{0} = Iniread(.......)
a{$var}{1} = Iniread(.......)Code : Tout sélectionner
a[$var][0] = Iniread(.......)
a[$var][1] = Iniread(.......)Ensuite pour un tableau il vaut mieux faire certaines choses avant :
1 - Déclarer le tableau et ses dimensions avant de l'utiliser :
Code : Tout sélectionner
Dim a[1][20]2 - Généralement la dimension 0 d'un tableau est utilisée pour stocker le nombre de variables de la dimension.
Pour finir, comme vous l'a indiqué jbnh, lorsque vous faites une demande d'aide, un bout de code est plus parlant que 10 lignes d'explications.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: {..} Variable a deux dimensions "oublié" ?
Merci pour vous réponses !
Tous d'abord pour les "[]" j'étais sous Mac et je trouvais pas la touche x), mais ça correspond bien a des [].
Donc bon je vais vous mettre un peu de script comme demander :
C'est la ligne en rouge qui plante, je ne sais pas trop pourquoi, c'est la seul fonction du script.
Voici l'erreur :
MouseClick("left", $a[$Zero][0], $a[$Zero][1], 1 , 0)
MouseClick("left", $a^ERROR
Error : Subscript used with non-Array Variable.
J'ai essayer de bien mettre en évidance le fait que $zero = 0, mais la même erreur survient.
Je penche donc pour une erreur dans la variable a deux dimensions.
Merci d'avance
Tous d'abord pour les "[]" j'étais sous Mac et je trouvais pas la touche x), mais ça correspond bien a des [].
Donc bon je vais vous mettre un peu de script comme demander :
Code : Tout sélectionner
Local $a[50][2] ; Création des variables à 2 Dimensions
$ious = 0
$zero = 0
(...)
Case $Button3 ; Trajet
$existe1 = Iniread("options.ini", "", "m", "?")
If $existe1 > 0 Then ; Si a un trajet a été trouver et qu'on veux le charger
If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer ; Indispensable mais je sais pas a quoi ça sert
$iMsgBoxAnswer = MsgBox(36,"Trajet","Vous aviez déjà enregistrer une boucle auparavant. Voulez vous utilisez le trajet enregistré précédament ?")
Select
Case $iMsgBoxAnswer = 6 ;Yes
$nbmap1 = Iniread("options.ini", "", "m", "?") ; Lit le nombre de clique enregistré dans l'ancien trajet
While $ious < $nbmap1
$a[$ious][0] = IniRead("options.ini","", "F" & $ious & "0", 12.5)
$a[$ious][1] = IniRead("options.ini","", "F" & $ious & "1", 12.5)
$ious = $ious + 1
WEnd
Case $iMsgBoxAnswer = 7 ;No
EndSelect
(... plus tard dans le script dans une fonction)
If $ious > 0 Then ; Si un trajet de Boucle a été crée
[color=#FF0000]MouseClick("left", $a[$Zero][0], $a[$Zero][1], 1 , 0) [/color];Cliquer sur la 1er valeur de la boucle
Voici l'erreur :
MouseClick("left", $a[$Zero][0], $a[$Zero][1], 1 , 0)
MouseClick("left", $a^ERROR
Error : Subscript used with non-Array Variable.
J'ai essayer de bien mettre en évidance le fait que $zero = 0, mais la même erreur survient.
Je penche donc pour une erreur dans la variable a deux dimensions.
Merci d'avance
- Iste
- Niveau 11

- Messages : 1870
- Enregistré le : jeu. 04 déc. 2008 14:21
- Localisation : 76
- Status : Hors ligne
Re: {..} Variable a deux dimensions "oublié" ?
juste avant le mouseclik, essaye de mettre un _ArrayDisplay() pour savoir l'etat de la variable a ce moment là. Si la variable est ok, ya un probleme, sinon, essaye de faire remonter le _ArrayDisplay() jusqu'a l'origine de la variable pour trouver le probleme
Je ne peux rien dire de plus, si ce n'est que j'ai deja eu le meme probleme, et que j'ai fini par abandoner :/
edit apres avoir testé le script : pour moi le probleme a de fortes chance de venir du IniRead()
Je ne peux rien dire de plus, si ce n'est que j'ai deja eu le meme probleme, et que j'ai fini par abandoner :/
edit apres avoir testé le script : pour moi le probleme a de fortes chance de venir du IniRead()
Modifié en dernier par Iste le mar. 24 févr. 2009 18:05, modifié 2 fois.
Signez ici
Re: {..} Variable a deux dimensions "oublié" ?
Merci beaucoup iste pour ta réponse mais je crois que l'erreur vien d'une bête manipulation de varriable... je vous tient au courant.
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: {..} Variable a deux dimensions "oublié" ?
Puisque vous utilisez le tableau dans tout le code, modifiez ceci :en ceci
Ensuite, regardez dans votre code si par mégarde vous ne re-définissez pas le tableau $a en une simple variable.
Code : Tout sélectionner
Local $a[50][2]Code : Tout sélectionner
Dim $a[50][2]Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Variable a deux dimensions "oublié" ?
J'ai trouvé l'erreur !
Comme le dis Telm j'ai tout bêtement donner une valeur à $a alors que celle-ci étais déjà utiliser !
En tout cas merci beaucoup a tout le forum pour votre aide sans vous j'aurais certainement tout recommencer !
(Ne jamais utiliser de variable à 1 lettre)
Comme le dis Telm j'ai tout bêtement donner une valeur à $a alors que celle-ci étais déjà utiliser !
En tout cas merci beaucoup a tout le forum pour votre aide sans vous j'aurais certainement tout recommencer !
(Ne jamais utiliser de variable à 1 lettre)

