Page 1 sur 1

[..] Création d'une GUI depuis fichier LST

Posté : lun. 22 juil. 2013 13:47
par ThESeRvEuR
Bonjour à tous,

Inspiré par ce code : http://autoitscript.fr/forum/viewtopic.php?f=4&t=10989 , je travaille actuellement sur la réalisation d'un programme Autoit mais je bloque sur quelque chose.

Voici où j'en suis :
L'interface est créée mais non définitive.
J'arrive à lire le fichier .LST
J'arrive à découper les informations.
Et j'arrive à insérer les informations afin d'en créer une liste.

Pour résumer simplement :
Mon fichier .LST se présente sous cette forme : (issu de requête SQL)

Code : Tout sélectionner

CODE; NOM; PRENOM; ADRESSE; CODE POSTAL; VILLE; INFORMATIONS COMPLEMENTAIRE
Bref toutes les informations d'une personne sont sur une seule et même ligne.

Mon problème, récupérer uniquement le NOM/PRENOM (au travers du StringSplit , puis ELEMENT[1] et ELEMENT[2], corrigez moi si ce n'est pas ça, afin d'insérer cela dans une GUICtrlCreateList. Sauf que je n'arrive pas lister les X lignes contenant ELEMENT[1] et ELEMENT[2], j'arrive juste à obtenir la première ligne ou la dernière dans ma liste mais pas les X lignes de mon fichier .LST

A terme, il faudra que lorsque je sélectionne un NOM/PRENOM cela mette à jour d'autres GUI ou que cela créé un onglet avec les informations nécessaires.

Je reste à votre disposition pour tout complément d'information et vous remercie par avance. 8)

Re: [..] Création d'une GUI depuis fichier LST

Posté : lun. 22 juil. 2013 13:55
par mikell
Question idiote, pourquoi ne pas envoyer une requête sql pour extraire juste NOM/PRENOM avec _SQLite_GetTable2d et une query adaptée, ensuite remplir une listview avec l'array obtenue est facile

Re: [..] Création d'une GUI depuis fichier LST

Posté : lun. 22 juil. 2013 14:05
par jguinch
Tu n'aurais pas un morceau de code à nous montrer ? Sans ça, difficile de voir où ça cloche...
Si j'ai bien compris, ton problème est de lire le fichier LST ligne à ligne et insérer les NOM-PRENOM dans la liste ?
► Afficher le texteLe code
► Afficher le texteFichier LST

Re: [..] Création d'une GUI depuis fichier LST

Posté : lun. 22 juil. 2013 15:55
par ThESeRvEuR
mikell a écrit :Question idiote, pourquoi ne pas envoyer une requête sql pour extraire juste NOM/PRENOM avec _SQLite_GetTable2d et une query adaptée, ensuite remplir une listview avec l'array obtenue est facile
Je suis d'avis qu'il n'y a jamais de question idiote par principe :P ...
A te lire, cela parait tellement simple, j'essaye de faire avec mon pauvre niveau de connaissance Autoit donc je tente les plus possible de me débrouiller avec tout ce que je peux trouver par ci par là mais quand je bute mon espoir c'est vous :oops:

jguinch : Concernant le bout de code, ça n'a pas été trop utile puisque tu as très bien solutionné mon problème. En revanche, peux-tu m'expliquer un peu ton bout de code :

Code : Tout sélectionner

$f = FileOpen(@ScriptDir & "\data.lst")
If $f <> -1 Then [color=#FF0000]---> c'est quoi <> -1[/color]
    While 1
        $line = FileReadLine($f)
        If @error Then ExitLoop
        
        $splitLine = StringSplit($line, ";")
        GUICtrlSetData($list, $splitLine[3] & " " & $splitLine[2])
    WEnd
EndIf

While GUIGetMsg() <> -3 [color=#FF0000]---> c'est quoi <> -3[/color]
    Sleep(100)
WEnd
Après il est clair, que pour ce niveau, j'aurais probablement dû demander une création de script directement :(

Re: [..] Création d'une GUI depuis fichier LST

Posté : lun. 22 juil. 2013 17:12
par alex1205
Salut,
alors le "If $f <> -1 Then" c'est pour dire "Si la lecture du fichier lst est faite sans erreur alors :".
Après le "While GUIGetMsg() <> -3" ça veut dire "Du temps que l'état de la Gui (la fenetre) soit pas -3 (fermeture de la fenetre)"

Si tu as un problème MP moi ;)
parce que tu sais, des personnes comme mikell, s'énervent facilement.
Cordialement, Alex

Re: [..] Création d'une GUI depuis fichier LST

Posté : lun. 22 juil. 2013 18:12
par mikell
ThESeRvEuR a écrit :A terme, il faudra que lorsque je sélectionne un NOM/PRENOM cela mette à jour d'autres GUI ou que cela créé un onglet avec les informations nécessaires.
L'intérêt de la requête sql, c'est que c'est facile de gérer la suite avec une 2ème requête à la bdd (et plus besoin de fichier LST)
Il y a des exemples sur le forum

Maintenant si ça te rebute, tu peux aussi traiter ton fichier LST avec la fonction _CSV2Array()
Tu obtiens une array 2D qui contient toutes les infos dont tu as (et apparemment auras) besoin