Page 1 sur 1

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

Posté : jeu. 13 févr. 2014 02:07
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

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

Posté : jeu. 13 févr. 2014 06:18
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 ?

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

Posté : jeu. 13 févr. 2014 08:26
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 ?

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

Posté : jeu. 13 févr. 2014 11:19
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é ?

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

Posté : jeu. 13 févr. 2014 11:54
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.

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

Posté : jeu. 13 févr. 2014 14:02
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

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

Posté : ven. 14 févr. 2014 16:32
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