Page 1 sur 1
[R] Remplir tableau 2 D
Posté : lun. 12 janv. 2015 16:54
par jcaspar
B
onjour à tous !
Je souhaiterais créer un tableau qui me permette de saisir les noms utilisateurs puis les temps pour chacun
je pensais utiliser une boucle imbriquée ... mais le résultat n'est pas très heureux pour l'instant pourriez vous
svp m'expliquer comment procéder pour y parvenir..
exemple
toto 10 20 30 40 50
tutu 15 45 30 48 20
Je vous remercie pour vos conseils et explications
Jean-Marc
► Afficher le texte
Code : Tout sélectionner
#include <Array.au3>
#include <MsgBoxConstants.au3>
local $tableau[10][10]
for $i=0 to 10 step 1
$i+=1
$saisie=inputbox("Nom utilisateur ","Nom utilisateur","Taper nom utilisateur")
_ArrayInsert($tableau,$i,$saisie,0)
next
for $j=1 to 6 step 1
$j+=1
$saisie=inputbox("Temps travail","Temps travail","Taper temps")
_ArrayInsert($tableau,$i,$saisie,0)
next
_ArrayDisplay($tableau, "Tableau récapitulatif ", "8|8", 2+64, 64, "Personne |x|y|z|w|aa|ab|ac|ad",Default,0xDDFFDD)
Re: [..] Remplir tableau 2 D
Posté : lun. 12 janv. 2015 17:02
par DimVar
Bonjour,
A vue d’œil :
- confusion des variables $i/$j dans les boucles.
- incrémentation de la variable de compteur à placer en fin de boucle et non en début.
Cdlt, Dimvar.
Re: [..] Remplir tableau 2 D
Posté : lun. 12 janv. 2015 17:37
par TommyDDR
C'est surtout qu'il NE FAUT PAS incrémenter $i et $j, la boucle "for" le fait déjà toute seule.
Re: [..] Remplir tableau 2 D
Posté : lun. 12 janv. 2015 19:02
par jcaspar
Merci pour vos conseils
j'ai donc modifier mon code de manière à pouvoir sortir du programme avec la touche esc
et à visualiser l'incrémentation des variables i et j
elles s'incrémentent bien mais les données s'ajoutent toujours de manière verticale et non horizontale
si ma compréhension est correcte l'incrémentation de $i permet de lister les données verticalement
et l'incrémentation de j de lister les données de manière horizontale
Merci encore pour vos conseils !
► Afficher le texte
Code : Tout sélectionner
#include <Array.au3>
#include <MsgBoxConstants.au3>
HotKeySet("{ESC}", "Terminate")
local $tableau[10][10]
for $i = 0 to 10 step 1
$saisie1 = inputbox("Nom Utilisateur", "Utilisateur", "Taper Utilisateur")
_ArrayInsert($tableau,$i, $saisie1, 0)
for $j = 0 to 10 step 1
$saisie2 = inputbox("Notes", "Notes", "Taper Notes")
_ArrayInsert($tableau, $j, $saisie2, 0)
ConsoleWrite("La valeur de i est de " & $i & @crlf)
ConsoleWrite("La valeur de j est de " & $j & @CRLF)
next
next
Func Terminate()
Exit
EndFunc ;==>Terminate
_ArrayDisplay($tableau, "Tableau Récapitulatif Notes", "8|8", 2 + 64, 64, "Utilisateur |PC1|PC2|PC3|PC4|PC5|PC6|PC7|PC8", Default, 0xDDFFDD)
Re: [..] Remplir tableau 2 D
Posté : lun. 12 janv. 2015 20:41
par walkson
Bonsoir,
Je pense que la bonne méthode est:
► Afficher le texte
Code : Tout sélectionner
#include <Array.au3>
#include <MsgBoxConstants.au3>
HotKeySet("{ESC}", "Terminate")
local $tableau[2][3]
for $i = 0 to 1;soit 2 lignes
for $j = 0 to 2;soit 3 colonnes
If $j = 0 Then;première colonne
$saisie1 = inputbox("Nom Utilisateur", "Utilisateur", "Taper Utilisateur")
$tableau[$i][0] = $saisie1
Else
$saisie2 = inputbox("Notes", "Notes", "Taper Notes")
$tableau[$i][$j] = $saisie2
EndIf
ConsoleWrite("La valeur de i est de " & $i & @crlf)
ConsoleWrite("La valeur de j est de " & $j & @CRLF)
next
next
Func Terminate()
Exit
EndFunc ;==>Terminate
_ArrayDisplay($tableau, "Tableau Récapitulatif Notes", "8|8", 2 + 64, 64, "Utilisateur |PC1|PC2|PC3|PC4|PC5|PC6|PC7|PC8", Default, 0xDDFFDD)
J'ai reduit à 2 lignes et 3 colonnes car taper 100 questions pour vérifier......
En regardant l'aide, il me semble que ArrayInsert() est surtout utilisé pour une insertion et non pour remplir un tableau (à confirmer?)
Re: [..] Remplir tableau 2 D
Posté : lun. 12 janv. 2015 22:22
par mikell
ça serait un peu plus long à écrire mais infiniment moins hasardeux de faire une gui avec le nombre d'inputs adéquat pour rentrer les infos + 2 boutons
Bouton 1 : le code lit tous les inputs, concatène leur contenu avec des séparateurs, et rajoute la ligne au tableau avec _ArrayAdd
Bouton 2 : vide les inputs pour les entrées suivantes
Avantages : on part d'un tableau vide $tableau[0][n] et on y rajoute juste ce qu'il faut, on visualise ensemble les données de la même ligne, pas d'erreurs même si certains champs d'input sont vides, et on peut quitter le script proprement
Re: [..] Remplir tableau 2 D
Posté : mar. 13 janv. 2015 09:20
par TommyDDR
Votre problème vient de l'utilisation que vous faites de _ArrayInsert, vous mettrez $i et $j dans le même paramètre de _ArrayInsert.
Mais de toute façon, vous avez un tableau qui a déjà la bonne taille, vous ne devez donc pas utiliser _ArrayInsert qui lui, agrandira le tableau.
+1 avec walkson et si vous comptez rendre le process moins lourd, vous devriez suivre le conseil de mikell