Bonjour,
Je débute avec autoit.
Dans mon premier script, je récupère dans un fichier texte des nombres que je passe dans une liste déroulante avec GUICtrlSetData.
Comment classer ces nombres en ordre croissant ?
Merci,
Filo
[R] GUICtrlSetData et tri
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.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] GUICtrlSetData et tri
Je pense que le plus simple est de passer vous valeurs dans un tableau, puis de trier ce dernier avec la commande _ArraySort.
Après, une simple boucle de lecture vous permettra de tout remettre dans votre Combo.
Après, une simple boucle de lecture vous permettra de tout remettre dans votre Combo.
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é".
- zeshrek
- Niveau 10

- Messages : 984
- Enregistré le : mer. 17 nov. 2010 09:31
- Localisation : Sur ma chaise
- Status : Hors ligne
Re: [..] GUICtrlSetData et tri
ou alors on utilise l'option de tri dans le style de la combo :
Code : Tout sélectionner
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
$StyleCombo_Default = BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL)
$StyleCombo_AvecTri = BitOR($StyleCombo_Default,[color=#FF0000] $CBS_SORT[/color])
$Form1 = GUICreate("Form1", 633, 454, 192, 114)
$Combo1 = GUICtrlCreateCombo("Combo1", 192, 64, 145, 25, $StyleCombo_AvecTri) ; on crée le combo avec le style par defaut + tri
GUICtrlSetData(-1, "2|1|3|9|6|4|8|7|5") ; on injecte les données dans le désordre le plus total
GUISetState(@SW_SHOW) ; miracle ca sera trié :)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEndSi vis pacem para bellum
Re: [..] GUICtrlSetData et tri
Merci beaucoup pour vos réponses.
J'essaie le tableau dans un premier temps, ce qui me servira pour beaucoup d'autres choses..
Voici la déclaration du tableau, qui semble fonctionner.
J'ai un peu de difficulté avec les arguments de la fonction _arraySort par contre.
J'essaie le tableau dans un premier temps, ce qui me servira pour beaucoup d'autres choses..
Voici la déclaration du tableau, qui semble fonctionner.
J'ai un peu de difficulté avec les arguments de la fonction _arraySort par contre.
Code : Tout sélectionner
$numStations = FileReadLine($file1)
If @error = -1 Then ExitLoop
Dim $tab
_ArrayDisplay($tab, $numStations)
_ArraySort ($tab)
For $i = 0 To UBound($tab -1)
GUICtrlSetData($stations, $i)
Next
Modifié en dernier par TommyDDR le jeu. 03 mars 2011 12:14, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] GUICtrlSetData et tri
Ahh, oui, $CBS_SORT, je l'avais oublié celui-là !!!
+1
+1
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: [R] GUICtrlSetData et tri
Merci pour votre aide, c'est ok.
Code : Tout sélectionner
;lecture ligne à ligne du fichier et intégration dans le menu déroulant
While 1
$numStations = FileReadLine($file1)
If @error = -1 Then ExitLoop
Dim $tab
_ArrayDisplay($tab, $numStations)
_ArraySort($numStations)
For $i = 0 To UBound($tab -1)
GUICtrlSetData($stations, $i)
GUICtrlSetData($stations, $numStations)
Next
;ajout d'un dernier item (defaut)
GUICtrlSetData($stations, "Choisir la station")
Wend
