[..] Ecrire dans un GUICtrlCreateList

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

[..] Ecrire dans un GUICtrlCreateList

#1

Message par BeCool »

Bonjour a tous.

Ma question va paraitre toute bête, mais je n'arrive pas a écrire tout le contenu d'un .ini dans un GUICtrlCreateList ... (il me prend que la première ligne)

Il faut aussi savoir que le contenu du .ini peut augmenter.

En fait je fais un programme ou il y a un suivi de client, et a chaques fois qu'il y a quelque chose de fait sur ce client, on ajoute ce qui et fait, et j'aimerais afficher tout l'historique de ce suivi dans un GUICtrlCreateList.

Quelqu'un peut m'aider svp ?

P.S: Je fais ca dans un .ini pour des raisons de facilité, mais si il le faut absolument, je peux remplacer le .ini par un .txt, sachant que ces fichiers pourront faire rapidement 1, 5, voir 10 mo ...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#2

Message par Tlem »

En ce qui concerne votre demande, je pense que le fichier .ini n'est pas forcément ce qu'il y à de mieux puisque celui-ci à une limite de 64Ko pour certaines fonctions.

Ensuite pour le GUICtrlCreateList, il vous faut rajouter les informations ligne par ligne. Regardez dans la doc, l'exemple fournit pour ajouter les événement. ;)
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#3

Message par BeCool »

Pour ce qui est de la limite, je sais, mais je penses que ca me conviendra largement étant donné que je veux juste écrire et lire du texte dedans.

En suite, j'ai pensé a ce que vous me dites par rapport au fait qu'il faille rajouter les infos ligne par ligne, mais ca ne me va pas étant donné qu'il faut que ma GUICtrlCreatList puisse lire le fichier ini qu'il y ait une ligne, comme 100 ...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#4

Message par Tlem »

Et bien un fichier texte tout simple fera aussi bien l'affaire. ;)
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#5

Message par BeCool »

Oui, mais encore faut il que je connaisse la fonction pour afficher TOUT le texte dans ma fenêtre. ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#6

Message par Tlem »

Tout dépend de comment vous comptez régler le problème.

Soit vous lisez l'intégralité du fichier à chaque mise à jour et vous re-copiez le tout dans la liste, soit vous tenez compte du nombre de lignes déjà affichées et vous ne récupérez que les lignes manquantes ...
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#7

Message par BeCool »

Il y aura plusieurs fichier.ini ou .txt qui auront tous un nombre de ligne différent, donc ce que je veux, c'est juste pouvoir afficher dans une fenêtre le contenu de mes fichiers .txt ou .ini.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#8

Message par Tlem »

Vu que vous ne donnez pas franchement beaucoup de détails sur ce dont vous avez besoin, voici ce que je peut vous donner pour l'instant :
► Afficher le texte
A vous de comprendre et d'adapter à votre besoin.
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#9

Message par BeCool »

Je viens de me re-pencher sur le sujet et avec le recul, j'ai directement compris. Merci :)
Mais il ne m'affiche que les sections, or, j'aimerais qu'il me lise plutôt les "keys" et là je plante.
J'ai cherché, mais a aucun endroit on définit ce qu'il doit lire. Donc je ne trouve pas ce qu'il faut ajouter/changer pour qu'il me lise mes "keys"...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#10

Message par Tlem »

L'exemple que je vous ai donné ne lit pas que les sections, mais la totalité du fichier. :lol:

Si vous voulez lire les clés d'un fichier .Ini, utilisez les fonctions associées telle que IniReadSection(), IniRead(), etc ...
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#11

Message par BeCool »

Je me disais bien aussi !

J'avais déjà pensé au IniReadSection(), etc, mais je n'y était pas arrivé. Peut être qu'avec un peut de recul j'y arriverais. Je regarde ça tout a l'heure si j'ai le temps, au pire demain ;)

Merci Tlem :)

Edit : Je viens d'arriver a lire une "keys" mais il ne veut en lire qu'une ... Il ne veut pas lire les "Keys" qu'il y a dessous... Pourtant j'ai bien mis :

Code : Tout sélectionner

$line &= IniRead($filee, "Suivi", "", "")& '|'
...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#12

Message par Tlem »

Je ne sais pas comment est fait votre fichier.ini donc je ne peut vous aider plus.

Par contre je peut vous mettre sur la voie :
IniReadSectionNames("Fic.ini") => Va lire le nom de toutes les sections d'un fichier .ini et vous retourner un tableau.
Ensuite avec ce tableau de noms, vous pouvez utiliser la fonction IniReadSection("Fic.ini", "section") pour lire la totalité des clés d'une section.
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#13

Message par BeCool »

Mon fichier ini est tout bête. Il est comme ceci :

Code : Tout sélectionner

[Suivi]
 kafz^ùkPZFK¨kzfpkZKPFkz^fk¨ZPKFPQzkf
= fggggggggggggggg
= aaaaaaaaaaaaaa
= szgsrhgzqaefrk
sa|
 
Bon bien sur c'est un fichier ini de test hein ;)

Donc si j'ai bien compris ce que vous me dites, ca donnerais quelque chose comme ci dessous :

Code : Tout sélectionner

$readsection = IniReadSectionNames("C:\chemin\Nom.ini")
$blabla = IniReadSection ("" & $readsection, "Suivi")
GuiCtrlSetData ($ancien, $blabla)
?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#14

Message par Tlem »

Votre fichier n'est pas dans le format .INI.

Un fichier au format .ini doit se présenter comme ceci :

Code : Tout sélectionner

[Section1]
Cle1 = Val1
Cle2 = Val2
Cle3 = Val3

[Section2]
Cle#1 = Val#1
Cle##2 = Val#2
Clexx3 = Valeur 3
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#15

Message par BeCool »

Je sais bien. Mais étant donné que les clés n'ont pas de nom, ceci explique cela.
Pour ce qui est des lignes sans "=", c'était juste pour faire un test. C'est déjà modifié.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#16

Message par Tlem »

Si vous n'avez pas de clés, alors vous ne pouvez pas utiliser le fichier comme un fichier .ini et donc les fonctions associées.

Vous devez dans ce cas créer votre propre parseur de données.
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#17

Message par BeCool »

Alors je vais utilisé des clés ^^

Sinon, mon exemple était bon ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#18

Message par Tlem »

Non, car IniReadSectionNames() et IniReadSection() renvoient un tableau et non une variable.
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é".
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#19

Message par BeCool »

Autant pour moi.
Je suis arrivé a faire afficher tout mon .ini, sauf qu'il m'affiche aussi les clés et les noms de section, et il me met tout sur la même ligne ... Je ne comprend pas pourquoi, je penses avoir fais comme dans votre exemple :

Code : Tout sélectionner

Case $bouton_suivi_cl
            
            Global $line
            $filee = "C:\Lor des sens\Fiche Client\Suivi Client\_" & GuictrlRead($input_rech_fc_cl) & ".ini"
            $fileee = FileOpen($filee, 0)
            $line &= FileRead($filee)& '|'


            $suivi_cl = GUICreate("- L'or des sens - Suivi client(e) -", 434, 350, 391, 158)
            $bouton_suivi_cl_annuler = GUICtrlCreateButton("Annuler", 302, 312, 124, 30, $BS_FLAT)
            $bouton_suivi_cl_save = GUICtrlCreateButton("Sauvegarder", 8, 312, 124, 30, $BS_FLAT)
            $listbox_suivi_cl = GUICtrlCreateList("", 8, 8, 417, 266, BitOR($WS_VSCROLL, $WS_BORDER))
;            & IniReadSection("" & $filee, ""
            $input_suivi_cl = GUICtrlCreateInput("", 8, 280, 417, 21)
            GUICtrlSetData($listbox_suivi_cl, $line)
            GUISetState(@SW_SHOW)

            While 1
                $nMsg = GUIGetMsg()
                Switch $nMsg
                    Case $GUI_EVENT_CLOSE
                        Exit

                    Case $bouton_suivi_cl_annuler
                        GUISetState(@SW_HIDE)
                        _fiche_client()

                    Case $bouton_suivi_cl_save
                        FileWriteLine($filee, GUICtrlRead($input_suivi_cl) & '|')

                EndSwitch
            WEnd
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11811
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Ecrire dans un GUICtrlCreateList

#20

Message par Tlem »

Je ne vois pas comment vous aider plus alors que je ne connais pas la structure de votre fichier. :roll:
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é".
Répondre