[R] Problème avec _GUICtrlListView_InsertGroup()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

[R] Problème avec _GUICtrlListView_InsertGroup()

#1

Message par Hugues »

Bonjour,

J'ai un fichier toto.dat avec comme données:
► Afficher le texte
Je voudrais insérer le données dans une ListView avec des groupes (correspondant au nom des sections)

C'est à dire:
Dans la colonne de gauche ce qu'il y a à gauche des ";" et dans le colonne de droite ce qui est à droite des ";" :mrgreen:
► Afficher le texte
Merci par avance...

Ci joint mon code....
► Afficher le texte
Modifié en dernier par Hugues le jeu. 04 sept. 2014 14:02, modifié 3 fois.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#2

Message par Hugues »

Bon j'ai reussi à 90% lol
► Afficher le texte
Par contre chose étrange, si je met:

Code : Tout sélectionner

_GUICtrlListView_InsertGroup($Listview1, -1, $i, $aIniSectionNames[$i])
 
au lieu de:

Code : Tout sélectionner

_GUICtrlListView_InsertGroup($Listview1, -1, $i, "[" & $aIniSectionNames[$i] & "]")
 
Lorsque je lance ma fonction, ça me plante AutoIt... Message d'erreur: AutoIt à cesser de fonctionner... :shock: :shock:

Quelqu'un aurait une idée?
Alaghir
Niveau 4
Niveau 4
Messages : 51
Enregistré le : jeu. 12 juil. 2012 16:49
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#3

Message par Alaghir »

Tu as essayé de stocker ta valeur dans une variable intermédiaire et de remplacer $aIniSectionNames[$i] par celle-ci dans la fonction ? Quel résultat te renvoie ton ConsoleWrite ?
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#4

Message par Hugues »

Salut,

Quand je fais un

Code : Tout sélectionner

ConsoleWrite($aIniSectionNames[$i])
, il me retourne bien la valeur de mon SectionName, mais je suis obligé de mettre

Code : Tout sélectionner

"" &  $aIniSectionNames[$i]
ou autre chose dans la fonction pour qu'il me retourne la valeur... Bizarre...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#5

Message par orax »

Le problème venait du $i. Le premier groupe qui est inséré avec For $i = 0... ce n'est pas RIRI mais le chiffre 3. Parce que $aIniSectionNames[0] = 3.

Code : Tout sélectionner

For $i = 1 To $aIniSectionNames[0]
    ConsoleWrite($aIniSectionNames[$i] & @CRLF)
    _GUICtrlListView_InsertGroup($Listview1, -1, $i, $aIniSectionNames[$i])
    GUICtrlCreateListViewItem("[" & $aIniSectionNames[$i] & "]" & "|" & $aIniSectionNames[$i], $Listview1)
    _GUICtrlListView_SetItemGroupID($Listview1, $i - 1, $i)
Next
Ce qui faisait planter, c'était _WinAPI_MultiByteToWideChar qui est utilisé plus loin dans la fonction _GUICtrlListView_InsertGroup. Une chaîne (type string) est attendue en argument. Au lieu de ça, avec $i = 0, on a $aIniSectionNames[$i] = 3. 3 est un integer. Par contre "3" est de type string. Subtile différence. En réalité, il n'y a qu'un type en apparence : le type variant.

Code : Tout sélectionner

_WinAPI_MultiByteToWideChar(3) ; là ça plante !
_WinAPI_MultiByteToWideChar("3")
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#6

Message par Hugues »

Oki je regarde ça... Maintenant il faut que je recuperer les items de chaque Section lol
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#7

Message par Hugues »

Bon je reviens à la charge... :mrgreen:

Yé un pitit soucis avec la récupération de données de mon fichier .dat. Je m'explique j'ai un fichier *.dat qui ressemble presque à un fichier ini, sauf que le séparateur est un ";" au lieu de "=".

Donc vous voyez mon soucis quand je veux récupérer les cléfs et les valeurs associées à chaque Section... car le IniReadSection() ne fonctionne pas...

Je récupère bien le nombre et nom des Sections de mon fichier mais je ne sais pas comment faire...

Si quelqu'un à une idée? Je suis bien preneur... Sachant qu'en plus je voudrais que les clefs soient dans la colonne gauche et les valeurs dans la colonne droite de ma ListView.

Merci par avance.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#8

Message par mikell »

J'ai pas vraiment suivi les messages précédents, mais en se basant sur le "toto.dat" de ton 1er message voilà un petit outil d'analyse qui pourrait te servir
► Afficher le texte
Sinon ya la méthode bourrin : tu transformes ton .dat en .ini temporaire pour pouvoir utiliser les fonctions Ini*

Code : Tout sélectionner

$txt = FileRead(@ScriptDir & "\toto.dat")
$txt = StringReplace($txt, "];", "]")
$txt = StringReplace($txt, ";", "=")
FileWrite("temp.ini", $txt)
:mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#9

Message par Hugues »

Je préfère rester sur la méthode de lecture seule du fichier ^^.

Par contre j'ai un souci ça plante à ce niveau...

Code : Tout sélectionner

$array[$k+$j][2] = $values[$j]
$array[$k+$j][2] = ^ ERROR
De plus ça me compte pas le nombre de lignes totales de mes fichiers, il m'en manque ^^ :roll:

Ça doit surement venir des expressions régulières et on est un peu faché :mrgreen:

J’essaie de regarder quand même...
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#10

Message par orax »

Il faut qu'il y ait une valeur pour chaque clé. C'est toujours le cas ?

Code : Tout sélectionner

[FIFI];
1;                              (* Mon Texte LOULOU 3*)
2;                                                      <== pas de valeur ici donc ça plante
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#11

Message par mikell »

ça dépend de la construction réelle de ton fichier
C'est bourrin, une expression régulière, ça réfléchit pas
S'il y a une différence même minime entre la structure du fichier et celle de l'exemple que tu as donné, ça plante
D'où l'intérêt d'avoir le *vrai* contenu pour faire du boulot correct ^^

Edit
par exemple, ce que vient de dire orax :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#12

Message par Hugues »

Voici un exemple plus concret de mon fichier:
► Afficher le texte
Désolé de ne pas avoir était plus précis dès le départ... :oops: :mrgreen:
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#13

Message par jguinch »

Aussi, ça aurait été bien de créer un topic pour la question du fichier .dat... :|
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#14

Message par Hugues »

Bien chef!

Je passe donc se sujet en résolu et ouvre un autre post pour la décorticztion de mon fichier dat :mrgreen:
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#15

Message par Hugues »

Bon je ré-ouvre ce post car j'ai un soucis au niveau de l'alimentation de ma ListView...

Je ne m'y retrouve pas entre les $iIndex, $iGroupID de mon _GUICtrlListView_InsertGroup() et _GUICtrlListView_SetItemGroupID()...

J'arrive à afficher tout les groupes mais qu'une seule ligne de leur contenu... je pense que cela doit être au niveau des $iIndex, $iGroupID, mais j'ai beau tourner ça dans tout les sens ca m'affiche n'importe quoi?

J'arrive bien à récupérer le nombre de clefs et valeurs contenu dans chaque section, mais je ne comprend pas comment il faut proceder...

Merci par avance pour votre aide.
► Afficher le texte
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#16

Message par jguinch »

Et un truc comme ça ?
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec _GUICtrlListView_InsertGroup()

#17

Message par Hugues »

Heu oui tout à fait un truc comme ça! :mrgreen:
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [R] Problème avec _GUICtrlListView_InsertGroup()

#18

Message par orax »

Code : Tout sélectionner

FileClose($sContent)
:mrgreen: À changer en...

Code : Tout sélectionner

FileClose($hFile)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Problème avec _GUICtrlListView_InsertGroup()

#19

Message par jguinch »

Hugues, compare mon code et le tiens pour comprendre ce qui n'allait pas. Il n'y avait rien de compliqué..
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [R] Problème avec _GUICtrlListView_InsertGroup()

#20

Message par Hugues »

Oui c'est ce que je fais en ce moment :mrgreen: :mrgreen:

Pourtant le coup de la variable $Index +=1 je l'ai essayé mais ça ne fonctionnait pas chez moi??? :cry:

Je devais surement mal la positionner au niveau de l'incrémentation...

Bref j'ai passé des heures a y tourner dans tout les sens alors que la solution était si simple...

Par contre $aGroups[1] sert à quoi? A rien je pense...
Répondre