Hallo,
ich nutze folgende Funktion um einen Treeview zu erstellen.
Func _CreatePath($sPath, $idParent)
Local $aFolder, $aFiles, $idItem
If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
$aFolder = _FileListToArray($sPath, '*', $FLTA_FOLDERS)
If Not @error Then
For $i = 1 To $aFolder[0]
$idItem = GUICtrlCreateTreeViewItem($aFolder[$i], $idParent)
_CreatePath($sPath & $aFolder[$i], $idItem)
GUICtrlSetColor(-1, 0x098902)
Next
EndIf
$aFiles = _FileListToArray($sPath, '*', $FLTA_FILES)
If @error Then Return
For $i = 1 To $aFiles[0]
$idItem = GUICtrlCreateTreeViewItem($aFiles[$i], $idParent)
GUICtrlSetColor(-1, 0x098902)
Next
EndFunc
Alles anzeigen
Damit erstelle ich einen TreeView z.B davon: (Edit, gefärbt für gewünschtes Ergebnis)
Spoiler anzeigen
Folder 1\
characters\models\geralt\head\model\eye__geralt_d01.xbm
characters\models\geralt\head\model\h_01_mg__geralt_d01.xbm
characters\models\geralt\head\model\h_01_mg__geralt_d02.xbm
characters\models\geralt\head\model\h_01_mg__geralt_n01.xbm
characters\models\geralt\head\model\h_01_mg__geralt_n02.xbm
characters\models\geralt\head\model\h_01_mg__geralt_tattoo_d01.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_d01_mark.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_d01_mark_tattoo.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_d02_mark.xbm
characters\models\geralt\body\model\body_01_mg__geralt_d01.xbm
Folder 2\
characters\models\geralt\head\model\eye__geralt_d01.xbm
characters\models\geralt\head\model\h_01_mg__geralt_d01.xbm
characters\models\geralt\head\model\h_01_mg__geralt_d02.xbm
characters\models\geralt\head\model\h_01_mg__geralt_n01.xbm
characters\models\geralt\head\model\h_01_mg__geralt_n02.xbm
characters\models\geralt\head\model\h_01_mg__geralt_tattoo_d01.xbm
characters\models\geralt\head\model\h_01_mg__geralt_tattoo_d02.xbm
characters\models\geralt\head\model\h_02_mg__geralt_d01.xbm
characters\models\geralt\head\model\h_02_mg__geralt_n01.xbm
characters\models\geralt\head\model\h_03_mg__geralt_d01.xbm
characters\models\geralt\head\model\h_03_mg__geralt_n01.xbm
characters\models\geralt\head\model\h_04_mg__geralt_d01.xbm
characters\models\geralt\head\model\h_04_mg__geralt_n01.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_d01_mark.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_d01_mark_tattoo.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_d02_mark.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_d02_mark_tattoo.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_n01_mark.xbm
characters\models\geralt\head\model\ep1_mark\h_01_mg__geralt_n02_mark.xbm
characters\models\geralt\body\model\body_01_mg__geralt_d01.xbm
characters\models\geralt\body\model\s_01_mg__body_hires_d01.xbm
Folder 3\
dlc\dlc6\data\characters\models\main_npc\triss\model\body_01_wa__triss_dlc_d01.xbm
dlc\dlc6\data\characters\models\main_npc\triss\model\body_01_wa__triss_dlc_s01.xbm
dlc\dlc4\data\characters\models\main_npc\yennefer\model\body_05_wa__yennefer_d01.xbm
dlc\dlc4\data\characters\models\main_npc\yennefer\model\body_05_wa__yennefer_d02.xbm
dlc\dlc4\data\characters\models\main_npc\yennefer\model\glove_01_wa__yennefer_d01.xbm
dlc\dlc4\data\characters\models\main_npc\yennefer\model\scarf_01_wa__yennefer_d01.xbm
dlc\dlc4\data\characters\models\main_npc\yennefer\model\stockings_01_wa__yennefer_d01.xbm
dlc\dlc4\data\characters\models\main_npc\yennefer\model\yennefer_feathers_d01.xbm
dlc\dlc11\data\characters\models\main_npc\ciri\model\body_01_wa__ciri_dlc_d01.xbm
dlc\dlc11\data\characters\models\main_npc\ciri\model\body_01_wa__ciri_dlc_d02.xbm
dlc\dlc11\data\characters\models\main_npc\ciri\model\body_01_wa__ciri_dlc_d03.xbm
dlc\dlc11\data\characters\models\main_npc\ciri\model\body_01_wa__ciri_dlc_s01.xbm
dlc\dlc11\data\characters\models\main_npc\ciri\model\ciri_chainmail_dlc_d01.xbm
dlc\dlc11\data\characters\models\main_npc\ciri\model\ciri_chainmail_dlc_n01.xbm
characters\models\main_npc\yennefer\model\body_01_wa__yennefer.w2mesh
characters\models\main_npc\yennefer\model\body_01_wa__yennefer.w2mesh.1.buffer
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_a01.xbm
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_a02.xbm
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_d01.xbm
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_d02.xbm
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_hooded.w2mesh
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_hooded.w2mesh.1.buffer
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_n01.xbm
characters\models\main_npc\yennefer\model\body_01_wa__yennefer_n02.xbm
characters\models\main_npc\yennefer\model\dress_01_wa__yennefer_a01.xbm
characters\models\main_npc\yennefer\model\dress_01_wa__yennefer_a02.xbm
characters\models\main_npc\yennefer\model\dress_01_wa__yennefer_d01.xbm
characters\models\main_npc\yennefer\model\dress_01_wa__yennefer_d02.xbm
characters\models\main_npc\yennefer\model\dress_01_wa__yennefer_n01.xbm
characters\models\main_npc\yennefer\model\dress_01_wa__yennefer_n02.xbm
characters\models\main_npc\yennefer\model\fur_01_wa__yennefer.w2mesh
characters\models\main_npc\yennefer\model\fur_01_wa__yennefer.w2mesh.1.buffer
characters\models\main_npc\yennefer\model\fur_01_wa__yennefer_a01.xbm
characters\models\main_npc\yennefer\model\fur_01_wa__yennefer_d01.xbm
characters\models\main_npc\yennefer\model\fur_01_wa__yennefer_n01.xbm
characters\models\main_npc\yennefer\model\fur_02_wa__yennefer.w2mesh
characters\models\main_npc\yennefer\model\fur_02_wa__yennefer.w2mesh.1.buffer
characters\models\main_npc\yennefer\model\fur_03_wa__yennefer.w2mesh
characters\models\main_npc\yennefer\model\fur_03_wa__yennefer.w2mesh.1.buffer
characters\models\main_npc\yennefer\model\l_01_wa__yennefer.w2mesh
characters\models\main_npc\yennefer\model\l_01_wa__yennefer.w2mesh.1.buffer
characters\models\main_npc\yennefer\model\l_02_wa__yennefer.w2mesh
characters\models\main_npc\yennefer\model\l_02_wa__yennefer.w2mesh.1.buffer
characters\models\main_npc\yennefer\model\l_02_wa__yennefer_a01.xbm
characters\models\main_npc\yennefer\model\l_02_wa__yennefer_d01.xbm
characters\models\main_npc\yennefer\model\l_02_wa__yennefer_n01.xbm
characters\models\main_npc\yennefer\model\yennefer__body_d_notcensor.xbm
characters\models\main_npc\yennefer\model\yennefer__body_n_notcensor.xbm
characters\models\main_npc\yennefer\h_01_wa__yennefer\eye__yennefer_d01.xbm
characters\models\main_npc\yennefer\h_01_wa__yennefer\h_01_wa__yennefer_a01.xbm
characters\models\main_npc\yennefer\h_01_wa__yennefer\h_01_wa__yennefer_b01.xbm
characters\models\main_npc\yennefer\h_01_wa__yennefer\h_01_wa__yennefer_d01.xbm
characters\models\main_npc\yennefer\h_01_wa__yennefer\h_01_wa__yennefer_n01.xbm
characters\models\main_npc\triss\model\body_01_wa__triss_d01.xbm
characters\models\main_npc\triss\model\body_02_wa__triss_d01.xbm
characters\models\main_npc\triss\model\body_02_wa__triss_s01.xbm
characters\models\main_npc\triss\model\body_03_wa__triss.w2mesh
characters\models\main_npc\triss\model\body_03_wa__triss.w2mesh.1.buffer
characters\models\main_npc\triss\model\body_03_wa__triss_a01.xbm
characters\models\main_npc\triss\model\body_03_wa__triss_d01.xbm
characters\models\main_npc\triss\model\body_03_wa__triss_n01.xbm
characters\models\main_npc\triss\model\body_03_wa__triss_s01.xbm
characters\models\main_npc\triss\model\i_03_wa__triss_d01.xbm
characters\models\main_npc\triss\h_01_wa__triss\h_01_wa__triss_b01.xbm
characters\models\main_npc\triss\h_01_wa__triss\h_01_wa__triss_d01.xbm
characters\models\main_npc\triss\h_01_wa__triss\h_01_wa__triss_d02.xbm
characters\models\main_npc\triss\h_01_wa__triss\h_01_wa__triss_d03.xbm
characters\models\main_npc\triss\h_01_wa__triss\h_01_wa__triss_n01.xbm
Jetzt sind 10 Dateinamen doppelt vorhanden. Diese sollen später im Treeview selber dann rot gefärbt werden anstatt grün.
Das ist die Funktion, womit ich diese Daten herausfinde.
Func _FindDuplicates($sPath)
Local $aFolder, $aFiles, $aFind, $aRet
$aFolder = _FileListToArrayRec($sPath, "*", 1, 1, 0, 1)
$aFiles = _FileListToArrayRec($sPath, "*", 1, 1, 0, 0)
For $i = 1 To $aFiles[0]
$aFind = _ArrayFindAll($aFiles, $aFiles[$i])
If UBound($aFind) <> 1 Then $aRet &= $aFolder[$i] & "|"
Next
$aRet = StringSplit(StringTrimRight($aRet, 1), "|")
_ArraySort($aRet)
Return $aRet
EndFunc
Alles anzeigen
Das ist das Ergebnis:
array.PNG
Diese 20 Stellen sollten dann Rot gefärbt werden, anstatt grün.
Ich komme seit Sonntag morgen einfach nicht drauf