Bonjour,
Je souhaite insérer dans une ListView le contenu de mon fichier avec une mise en forme _GUICtrlListView_InsertGroup().
Pour récupérer le nom des section pas de soucis, mais comme mon fichier est composé de la manière suivante:
► Afficher le texte
Code : Tout sélectionner
[Section1];
2; (* No [2] *)
Paris; (* Prefix [8] *)
Lyon; (* IPAdress [15] *)
80; (* Virtual, each [2], separated by ","; MAX: 10 v. c. *)
[Section2];
\\Metropole\txt\; (* Path for txt file on Data Server [254] *)
\\Island\csv\pictures\; (* Move Path for Pictures [254] *)
\\Source\data\toto.ini; (* Path for configuration file toto.ini [254] *)
[Section3];
FALSE; (* Miles (FALSE) or KMS (TRUE): FALSE=No, TRUE=Yes *)
FALSE; (* SafetyMode: FALSE=No, TRUE=Yes *)
;
2; (* Offset *)
Comme vous pouvez le voir, le fichier est presque similaire à un fichier ini, sauf que mon fichier le séparateur est un ";" au lieu de "="...
Mon désir est de mettre dans la colonne de gauche de ma ListView ce qu'il a à gauche de ";" et ce qu'il y a dans la colonne de droite ce qu'il y a à droite de ";"
Mikell m'a déjà fournit ce code mais, comme il utilise les expressions régulières... Je ne sais pas ce qui bloque...
► Afficher le texte
Code : Tout sélectionner
#include <Array.au3>
$txt = FileRead(@ScriptDir & "\toto.dat")
$txt = StringReplace($txt, "];", "]")
$keys = StringRegExp($txt, '([\S|\h]+);', 3)
Dim $array[UBound($keys)][3] ; nb lignes = nb total de keys
$k = 0
$contenu_sections = StringRegExp($txt, '(\[[^\[]+)', 3) ; sépare les sections
For $i = 0 to UBound($contenu_sections) - 1 ; pour chaque section
$section = StringRegExp($contenu_sections[$i], '\[([^\]]+)', 3)
$array[$k][0] = $section[0] ; nom section
$keys = StringRegExp($contenu_sections[$i], '([\S|\h]+)\s*;', 3)
$values = StringRegExp($contenu_sections[$i], ';\s*([\S|\h]+)', 3)
For $j = 0 to UBound($keys) - 1 ; pour chaque key
$array[$k+$j][1] = $keys[$j] ; nom key
$array[$k+$j][2] = $values[$j] ; nom value
Next
$k += $j
Next
_ArrayDisplay($array)
Merci par avance