Page 1 sur 1

[R] Génération quotidienne de ligne de tableau suivant ini

Posté : mar. 27 août 2013 21:10
par hardfloor
Bonjour les amis,
Je vous demande un peu d'aide car je patauge serieusement!

Donc, j'aimerais faire un tableau de statistiques. Chaque jour qui est different devra générer un fichier.ini.
et donc chaque ligne du tableau = un fichier .ini différent

Vous aurez besoin de l'udf joint pour faire fonctionner le tableau

Et voici ce que j'ai commencé à faire:

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include "Table.au3"
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 724, 561, 192, 124)
$Input1 = GUICtrlCreateInput("Archers", 160, 496, 89, 21)
$Input2 = GUICtrlCreateInput("Paladins", 280, 496, 81, 21)
$Button1 = GUICtrlCreateButton("envoyer", 392, 496, 89, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$day = @MDAY
$month = @MON
$date = $day&"/"&$month
$date1 = $day&$month


$1 =  IniRead("test.ini", $date1, "archers", "")
$2 =  IniRead("test.ini", $date1, "paladins", "")



;----- Table Example 4 -----
GUICtrlCreateLabel(" Example 4 ", 250, 250, 100, 13)
$Table4 = _GUICtrlTable_Create(200, 100, 62, 18, 8, 3, 0)
_GUICtrlTable_Set_RowHeight($Table4, 1, 35)
_GUICtrlTable_Set_Justify_All($Table4, 1, 1)
_GUICtrlTable_Set_TextFont_All($Table4, 8.5, 800, 0, "Tahoma")
_GUICtrlTable_Set_CellColor_Row($Table4, 1, 0x555555)
_GUICtrlTable_Set_TextColor_All($Table4, 0x555555)
_GUICtrlTable_Set_TextColor_Row($Table4, 1, 0xFFFFFF)
For $row = 3 To 10 Step 2
    _GUICtrlTable_Set_CellColor_Row($Table4, $row, 0xDDDDDD)
Next
_GUICtrlTable_Set_Text_Row($Table4, 1, "Date|Archers|Paladins")
_GUICtrlTable_Set_Text_Row($Table4, 2, $date&"|"&$1&"|"&$2&"")
_GUICtrlTable_Set_Border_Table($Table4, 0x555555)


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

        Case $Button1
            IniWrite("test.ini", $date1, "archers", GUICtrlRead($input1))
            IniWrite("test.ini", $date1, "paladins", GUICtrlRead($input2))

    EndSwitch
WEnd

 
Donc voilà, j'aimerai qu'a chaque ligne = les infos d'un fichier ini et au passage si la ligne peut apparaitre au fur et a mesure des fichiers ini , se serait un plus.

Si vous n'avez pas bien compris, n'hésitez pas hein. Pour moi c'est clair mais pas forcément pour vous :wink:

Merci à ceux qui m'aideront.

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 21:32
par hardfloor
Je précise que je n'ai fait aucun controle encore sur l'existence du fichier, des sections, etc,..., pour le moment ce que je souhaite c'est pouvoir afficher la ligne qui correspond à son fichier.

J'avais pensé à utiliser la date dans le nom du fichier .ini, mais apres si l'utilisateur génere 3 fichiers par exemple, cela donnerait 3108.ini, 0209.ini et 2309.ini. Comment les afficher?? car je ne connais pas leur nom à l'avance!

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 21:50
par mikell
Pourquoi tu veux faire un tas de fichiers ini ? un seul suffirait, et tu lis les noms de section

Code : Tout sélectionner

[2708]
archers=Archers
paladins=Paladins

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 22:05
par hardfloor
Oui aussi^^
J'y avais pensé mais le probleme reste le même pour moi^^
Comment afficher des sections dont je ne connais pas le nom à l'avance?
Je ne manipule pas tres bien les commandes ini.......

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 22:07
par mikell
IniReadSectionNames => array 1D avec tous les noms de section
Ensuite tu boucles pour lire les données de chaque section

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 22:14
par hardfloor
Voui^^ mais encore :roll: ....

si tu pouvais me faire un petit exemple qu iillustre tout ca sans forcement reprendre mon code, ^parce que là j'en ai pour la nuit sinon!

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 22:36
par mikell
Exemple pour "test.ini"

Code : Tout sélectionner

[2708]
archers=18
paladins=28
[0209]
archers=17
paladins=27
[1009]
archers=15
paladins=25

Code : Tout sélectionner

$txt = ""
$sections = IniReadSectionNames("test.ini")
For $i = 1 to $sections[0]
  $archers = IniRead("test.ini", $sections[$i], "archers", "")
  $paladins = IniRead("test.ini", $sections[$i], "paladins", "")
  $txt &= $sections[$i] &@crlf& $archers &@crlf& $paladins &@crlf&@crlf
Next
Msgbox(0,"", $txt)

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 22:48
par hardfloor
Ok, donc là ca me liste mon fichier .ini, mais comment j'adapte ca moi pour que ça me produise une ligne par section :?

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 23:37
par mikell
Mélangeons pas tout ^^
Là il s'agit de lire le ini et de l'afficher dans ta table
► Afficher le texte
Après pour l'écriture du ini on parle d'autre chose

NB : Pourquoi ne pas avoir fait une listview ? tu t'emmerderais infiniment moins, et puis cette table c'est un gadget, tu fais comment le jour où tu as 150 sections dans ton ini et donc 150 lignes à afficher ?

Re: [..Génération quotidienne d'une ligne de tableau suivant

Posté : mar. 27 août 2013 23:50
par hardfloor
Ahhhhhhh Voilà, c'est impeccable le résultat :wink:

Une list wiew comme ici? http://www.autoitscript.fr/forum/viewto ... =11&t=9652
Mais je trouve le code bien compliqué pour moi encore, Ubound je ne l'ai jamais manipulé encore et array pareil, donc c'est vrai.j'avoue que quand je trouve des udf qui font des résultats sympas, je prends!
J'apprends vite mais faut le temps qu'il faut quand même :P

Je n'ai pas fait une listview parce que je préfere le style graphique de la table que j'ai trouvé.

Se sera sur 1 mois le tableau. Je vais rajouter des conditions et des controles afin de faire un tableau par mois donc 1 fichier par mois. Je veux réaliser des stats avancés sur l'année. Il y aura donc 31 sections max par fichiers.

En tout cas je te remercie pour cette première étape. :wink: