[..] Question sur l'écriture de mon code (Création tableaux)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

[..] Question sur l'écriture de mon code (Création tableaux)

#1

Message par Miryhan »

Bonjour/Bonsoir
Je vais détailler ce que la fonction _Enregistrer (du code ci-dessous) est censée faire et expliquer mes problèmes :

-Créer un tableau $tabitem de 6 lignes et 2 colonnes et le remplir de différentes variables.

-Questions :
Ai-je réussi ? Sinon corrigez moi.
Est-ce que je pourrai utiliser ce tableau ultérieurement (fonction _Retrait) ?

-Problème : Remplacer "item" par la variable $titre de la fonction _Config pour permettre la création d'un maximum de 14 tableaux et leurs utilisations ultérieurs. J'ai eu beau essayer, chercher sur google/forum j'ai pas réussi. Pourriez-vous me dire comment faire ?

Voici le code :
► Afficher le texte
Merci d'avance

Miryhan
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..]Question sur l'écriture de mon code (Création tablea

#2

Message par TopXm »

Hello :)

A mon humble avis, tu devrais commencer par essayer de compiler les sources avant de les donner à évaluation, tu t'apercevrais
des différentes erreurs, telles que :

Code : Tout sélectionner

Global $tstats = ["Absorbtion", "Afflux", "Alacrite", "Bouclier", "Critique", "Defense", "Expertise", "Precision", "Puissance"]
Tu définis un tableau mais tu ne renseignes pas le nombre d'occurrence de ton tableau, soit : $tstats[9]

Miryhan a écrit :-Questions :
Ai-je réussi ? Sinon corrigez moi.
Presque ! en fait de la façon où tu procèdes tu stockes juste les ControlID de tes différents contrôles et non leur valeur.
Par contre tu l'as fait correctement pour le 1er contrôle :

Code : Tout sélectionner

$stat = GUICtrlRead($Combo1)
Il faut que tu fasses de même pour chaque contrôle. Une petite astuce pour visualiser le contenu d'un tableau est d'utiliser _ArrayDisplay()
qui est bien pratique. Par exemple

Code : Tout sélectionner

   Dim $tabitem[6][2]=[[$stat,GUICtrlRead($Input1)],["Endurance",GUICtrlRead($Input2)],[GUICtrlRead($Combo2),GUICtrlRead($Input3)], _
                       [GUICtrlRead($Combo3),GUICtrlRead($Input4)],[GUICtrlRead($Combo4),GUICtrlRead($Input5)],[GUICtrlRead($Combo5),GUICtrlRead($Input6)]]
   _ArrayDisplay($tabitem)
Miryhan a écrit :Est-ce que je pourrai utiliser ce tableau ultérieurement (fonction _Retrait) ?
Non pas de la façon où tu l'as déclaré. Il n'a qu'une portée au niveau de ta Function _Enregistrer. Déclares le en haut de ton code avec tes divers Global
si tu veux que ça fonctionne.

Miryhan a écrit : Remplacer "item" par la variable $titre de la fonction _Config
Désolé pas certain d'avoir compris ta demande. Tu voudrais créer autant de GUI que tu as de radio cochés c'est bien ça ?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..]Question sur l'écriture de mon code (Création tablea

#3

Message par jchd »

TopXm a écrit :A mon humble avis, tu devrais commencer par essayer de compiler les sources avant de les donner à évaluation, tu t'apercevrais des différentes erreurs, telles que :

Code : Tout sélectionner

Global $tstats = ["Absorbtion", "Afflux", "Alacrite", "Bouclier", "Critique", "Defense", "Expertise", "Precision", "Puissance"]
Tu définis un tableau mais tu ne renseignes pas le nombre d'occurrence de ton tableau, soit : $tstats[9]
C'est parfaitement valide pour la dernière version.
Miryhan a écrit :-Questions :
Ai-je réussi ? Sinon corrigez moi.
C'est pour automatiser quel jeu ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..]Question sur l'écriture de mon code (Création tablea

#4

Message par aulus »

jchd a écrit : Tu définis un tableau mais tu ne renseignes pas le nombre d'occurrence de ton tableau, soit : $tstats[9]
C'est parfaitement valide pour la dernière version.
Cela signifie-t-il que ReDim n'a plus à être utilisé ?
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Question sur l'écriture de mon code (Création table

#5

Message par GaRydelaMer »

Bonjour,

Non, avec la dernière version 3.10.2, la création d'un tableau peut être faite avec cette nouvelle syntaxe, sans préciser les dimensions.

En revanche pour redimensionner un tableaux ReDim est à utiliser pour préserver son contenu.
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

Re: [..]Question sur l'écriture de mon code (Création tablea

#6

Message par Miryhan »

Code : Tout sélectionner

   Dim $tabitem[6][2]=[[$stat,GUICtrlRead($Input1)],["Endurance",GUICtrlRead($Input2)],[GUICtrlRead($Combo2),GUICtrlRead($Input3)], _
                       [GUICtrlRead($Combo3),GUICtrlRead($Input4)],[GUICtrlRead($Combo4),GUICtrlRead($Input5)],[GUICtrlRead($Combo5),GUICtrlRead($Input6)]]
   _ArrayDisplay($tabitem)
A quoi sert le _ArrayDisplay ? Si je traduit littéralement : affiche le tableau, mais où ?
TopXm a écrit :
Miryhan a écrit :Est-ce que je pourrai utiliser ce tableau ultérieurement (fonction _Retrait) ?
Non pas de la façon où tu l'as déclaré. Il n'a qu'une portée au niveau de ta Function _Enregistrer. Déclares le en haut de ton code avec tes divers Global
si tu veux que ça fonctionne.

Je m'en doutais.

TopXm a écrit :
Miryhan a écrit : Remplacer "item" par la variable $titre de la fonction _Config
Désolé pas certain d'avoir compris ta demande. Tu voudrais créer autant de GUI que tu as de radio cochés c'est bien ça ?
En gros je veux pouvoir créer un tableau pourtant le nom $tab[$titre], exemple : $tabOreillette[6][2], $tabImplant1[6][2] etc ...
Ils vont tous être de la forme $tabitem. Le but est de conserver ces items, pour ensuite pouvoir les retirer si l'on veux mettre un autre item à la place. Précision : un seul radio ne peut être coché à la fois, donc un seul tableau sera créé par la fonction _Enregistrer, mais elle pourra créer 14 tableaux de nom différent. Comment déclarer en début de code ces 14.

Aucune automatisation d'action de jeu de type bot, n'est prévue, car c'est pas bien :) Mais pour répondre à ta question, c’est sur le jeu SWTOR. Le but du soft est de permettre l’optimisation de son stuff du fait que certaines statistiques (somme totale) sont soumises à un "cap" (courbe logarithmique ou à rendement décroissant).

Désolé si je m'exprime mal ce sont mes débuts :)


Merci

Miryhan
Miryhan
Niveau 1
Niveau 1
Messages : 13
Enregistré le : ven. 07 févr. 2014 17:49
Status : Hors ligne

Re: [..] Question sur l'écriture de mon code (Création table

#7

Message par Miryhan »

Bonjour
J'ai fait quelques recherches complémentaires et je suis arrivé à cette conclusion : un tableau à 3 dimensions pourrait p-e m'aider. Je me tourne vers vous pour savoir si j'ai compris le principe de fonctionnement des tableaux 3D.

Tout d'abord, les tableaux 2D s'écrivent sous la forme, $tableau[A] avec A nombre de lignes et B colonnes (6 et 2 dans mon code). Un tableaux 3D s’écrirait $tableau[A][C].
Question :
-[C] représente-il le nombre de fois où la combinaison de [A] lignes et colonnes se répète ? Formulée autrement : est-ce que $tableau[A][C] vas créer [C] tableaux $tableau[A] ? De ce fait, [C] vaudrait 14 dans mon code (les 14 objets ou radio de mon code).

Merci d'avance

Miryhan
Répondre