Page 1 sur 1

liste Checkbox

Posté : sam. 12 mai 2018 10:26
par leonick12
bonjour, j'ai créer un script qui lit un fichier (listing bancaire en gros) il créer une liste de checkbox pour chaque ligne sans etre obliger de taper plein de fois des lignes de checkbox, tout marche tres bien, mais comment recuperer que les lignes cochées et les ré-enregistrer dans un fichier.

apres j'ai du taper deux fois les lignes qui vont de local "$file" à "next" car quand j'efface le premier il y a une erreur au niveau de la ligne local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0) celle à l'interieur de la fonction
#include <GUIConstantsEx.au3>
#include <File.au3>

local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0)

For $ligne = 3 To 14 Step 1

$texte=FileReadLine($file,$ligne)

if $texte <> "" Then
GUICtrlSetData(-1, "1"&$texte)
Else
   $ligne=14
EndIf

Next

Opt('MustDeclareVars', 1)

Local $hauteur=5

Example()

Func Example()
    Local $MESSAGE = "The following buttons have been clicked"
    Local $add, $clear, $mylist, $close, $msg

    GUICreate("My GUI list") ; will create a dialog box that when displayed is centered

   
local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0)

 dim $checkbox[12]

For $ligne = 3 To 14 Step 1

$texte=FileReadLine($file,$ligne)

if $texte <> "" Then
  GUICtrlCreateCheckbox($texte, 30, $hauteur)
 $hauteur=$hauteur+20
 
Else
   $ligne=14
EndIf

Next

$close = GUICtrlCreateButton("my closing button", 64, 260, 175, 25)

    GUISetState()

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
        $msg = GUIGetMsg()

        Select
         ;   Case $msg = $add
            ;    GUICtrlSetData($mylist, "You clicked button No1|")
         ;   Case $msg = $clear
             ;   GUICtrlSetData($mylist, "")
       Case $msg = $close
               
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Example

Re: liste Checkbox  

Posté : sam. 12 mai 2018 12:10
par mikell
Ouala Image
Attention il reste à ajouter la gestion d'erreur !

; creation array checkbox
Local $checkbox[12]
For $ligne = 3 To 14 Step 1
    $texte = FileReadLine($file, $ligne)
    if $texte <> "" Then
           $checkbox[$ligne-3] = GUICtrlCreateCheckbox($texte, 30, $hauteur)
           $hauteur=$hauteur+20
    EndIf
Next

....

; inscription dans un fichier du texte des checkbox cochées
Local $resultat = ""
For $i = 0 to UBound($checkbox)-1
    If GUICtrlRead($checkbox[$i]) = $GUI_CHECKED Then $resultat &= GUICtrlRead($checkbox[$i], 1) & @crlf
Next
FileWrite("resultat.txt", $resultat)

Re: liste Checkbox

Posté : sam. 12 mai 2018 12:12
par leonick12
un grand merci !!

j'ai compris comment enlever la premiere boucle j'avais pas ajouter toutes les infos
Local $add, $clear, $mylist, $close, $msg, $file, $texte
voila la version avec ton script inclu
#include <GUIConstantsEx.au3>
#include <File.au3>

Opt('MustDeclareVars', 1)

Local $hauteur=5

Example()


Func Example()
 
    Local $add, $clear, $mylist, $close, $msg, $file, $texte

    GUICreate("My GUI list") ; will create a dialog box that when displayed is centered
   
local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0)

 dim $checkbox[12]

For $ligne = 3 To 14 Step 1
    $texte = FileReadLine($file, $ligne)
    if $texte <> "" Then
           $checkbox[$ligne-3] = GUICtrlCreateCheckbox($texte, 30, $hauteur)
         GUICtrlSetState(-1, $GUI_CHECKED)
           $hauteur=$hauteur+20
    EndIf
Next

$close = GUICtrlCreateButton("VALIDER", 64, 260, 175, 25)

    GUISetState()

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
        $msg = GUIGetMsg()

        Select
       
       Case $msg = $close
          Local $resultat = ""
For $i = 0 to UBound($checkbox)-1
    If GUICtrlRead($checkbox[$i]) = $GUI_CHECKED Then $resultat &= GUICtrlRead($checkbox[$i], 1) & @crlf
Next
FileWrite("resultat.txt", $resultat)
         
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Example