Hey,
Habe folgendes Problem:
Habe folgende Gui Funktioniert auch soweit.
Spoiler anzeigen
#Include <GuiListBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <String.au3>
Opt("GuiOnEventMode",1)
;Opt("MustDeclareVars", 1)
Global $aArtikel, $aRead, $aRet, $colList, $DATEI_EDIT, $Edit_loeschen, $Edit1, $Form1, $hListBox, $i, $InsFol, $InsFolini
Global $insPostpone, $insrepair, $insshowdialog, $inshidden, $insuninstall, $j, $ListArtikel1, $ListArtikel2, $ListArtikel3
Global $read, $s11, $s12, $s13, $s14, $s15, $s16, $s17, $s18, $s19, $s20, $saveFile, $Speichern, $split, $sRead, $ValuesToSet
Global $folder, $array, $string, $sel, $stringAdd, $aItem[1][2] = [['']]
$Form1 = GUICreate("Form1", 633, 370, -1, -1)
GuiSetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$Edit1 = GUICtrlCreateEdit("", 108, 48, 149, 280)
$hListBox = GUICtrlCreateList("", 370, 48, 250, 280)
$insuninstall = GUICtrlCreateButton("Un", 10, 128, 91, 25)
GuiCtrlSetOnEvent(-1, "_insline")
$insrepair = GUICtrlCreateButton("Re", 10, 159, 91, 25)
GuiCtrlSetOnEvent(-1, "_insline")
$insshowdialog = GUICtrlCreateButton("Sh", 10, 190, 91, 25)
GuiCtrlSetOnEvent(-1, "_insline")
$inshidden = GUICtrlCreateButton("Hi", 10, 221, 91, 25)
GuiCtrlSetOnEvent(-1, "_insline")
$insPostpone = GUICtrlCreateButton("Po", 10, 252, 91, 25)
GuiCtrlSetOnEvent(-1, "_insline")
$InsFol = GUICtrlCreateButton("Bundels", 370, 338, 91, 25)
GuiCtrlSetOnEvent(-1, "_bundle")
$InsFolini = GUICtrlCreateButton("Custom Bundels", 490, 338, 91, 25)
GuiCtrlSetOnEvent(-1, "_bundle")
GUICtrlCreateLabel("BUNDELS", 372, 24, 178, 20)
GUICtrlCreateLabel("software.INI", 110, 24, 67, 17)
$Speichern = GUICtrlCreateButton("Speichern", 140, 338, 75, 25)
GuiCtrlSetonevent(-1, "_save")
$Edit_loeschen = GUICtrlCreateButton("Edit löschen", 220, 338, 75, 25)
GuiCtrlSetonevent(-1, "_del")
$Inputcn = GUICtrlCreateInput("Suchen", 472, 8, 121, 23)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
sleep(100)
WEnd
Func _bundle()
Switch @GUI_CtrlId
Case $InsFol
_select_bundel()
Case $InsFolini
_select_bundel(1)
EndSwitch
EndFunc
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
If Not IsArray($array) Then Return $GUI_RUNDEFMSG ; <=== füge diese Zeile ein
Local $hWndFrom, $iCode, $hWndListBox = $hListBox
If Not IsHWnd($hWndListBox) Then $hWndListBox = GUICtrlGetHandle($hWndListBox)
$hWndFrom = $ilParam
$iCode = BitShift($iwParam, 16)
If $hWndFrom = $hWndListBox Then
If $iCode = $LBN_DBLCLK Then
$stringAdd = ""
$read = ''
$sel = _GUICtrlListBox_GetCurSel($hListBox)
If $sel <> -1 Then
Local $ind = _ArraySearch($aItem, _GUICtrlListBox_GetText($hListBox, $sel), 0, 0, 0, 0, 1, 1)
If @error Then Return
$read = FileRead($aItem[$ind][0])
$split = StringSplit($read, "")
For $i = 1 To $split[0]
If $split[$i] = "[" Then $string &= @CRLF
$string &= $split[$i]
Next
;GuICtrlSetData($Edit1, StringTrimLeft($string,1)&@CRLF)
GuICtrlSetData($Edit1, GUICtrlRead($Edit1) & @CRLF & StringTrimLeft($string,1)&@CRLF&@CRLF)
$string = ""
EndIf
EndIf
EndIf
Return $GUI_RUNDEFMSG
EndFunc
Func _insLine()
For $i = 27 To 3 Step -1
$string = StringReplace(GuiCtrlRead($Edit1), _multiLine($i) , @CRLF & @CRLF)
GuICtrlSetData($Edit1, $string)
Next
Switch @GUI_CtrlId
Case 124
$stringAdd = @crlf & "Un=1" & @CRLF & @CRLF
Case 6
$stringAdd = @crlf & "re=1" & @CRLF & @CRLF
Case 7
$stringAdd = @crlf & "Sh=0" & @CRLF & @CRLF
Case 8
$stringAdd = @crlf & "hi=1" & @CRLF & @CRLF
Case 9
$stringAdd = @crlf & "Al=1" & @crlf & "Po=3" & @CRLF & @CRLF
EndSwitch
$string = StringReplace(GuiCtrlRead($Edit1), @crlf & @CRLF ,$stringAdd)
GuICtrlSetData($Edit1, $string)
EndFunc
Func _multiLine($count)
Local $ret = ''
For $i = 1 To $count
$ret &= @CRLF
Next
Return $ret
EndFunc
Func _save()
$saveFile = FileSaveDialog("Wählen Sie einen Ordner aus:", @DesktopDir,"Files(*.*)")
If $saveFile <> "" Then
FileWrite($saveFile, GuiCtrlRead($Edit1))
EndIf
EndFunc
Func _del()
GuICtrlSetData($Edit1, "")
EndFunc
Func _Exit()
Exit
EndFunc
Func _select_bundel($bundle=0)
If Not IsHWnd($hListBox) Then $hListBox = GUICtrlGetHandle($hListBox)
_GUICtrlListBox_ResetContent($hListBox)
GuICtrlSetData($Edit1, "")
ReDim $aItem[1][2]
$aItem[0][0] = ''
If $bundle = 0 Then
$folder = 'bundels'
;$folder = FileSelectFolder("Wählen Sie einen Ordner aus:", 'C:\');@DesktopDir)
If $folder <> "" Then
$array = _FileListToArray($folder, "*.ini",1)
If @error Then Return ; <=== Falls keine Datei enthalten, aus Funktion aussteigen
For $i = 1 To Ubound($array)-1
If $aItem[UBound($aItem)-1][0] <> '' Then ReDim $aItem[UBound($aItem)+1][2]
$aItem[UBound($aItem)-1][0] = $folder & '\' & $array[$i]
$aItem[UBound($aItem)-1][1] = $array[$i]
_GUICtrlListBox_AddFile($hListBox, $folder & "/" & $array[$i])
Next
EndIf
Else
Local $path = 'c:\Customs' ; Pfad mit den Unterordnern
Local $log = 'Software.ini'
$array = _FileListToArray($path, '*', 2)
If @error Then Return
Local $ind, $aInd, $text
For $i = 1 To UBound($array) -1
If FileExists($path & '\' & $array[$i] & '\' & $log) Then
If $aItem[UBound($aItem)-1][0] <> '' Then ReDim $aItem[UBound($aItem)+1][2]
$aItem[UBound($aItem)-1][0] = $path & '\' & $array[$i] & '\' & $log
$aItem[UBound($aItem)-1][1] = $array[$i] & '.ini'
_GUICtrlListBox_AddString($hListBox, $array[$i] & '.ini')
EndIf
Next
EndIf
EndFunc
jetzt zu meinem Problem:
In der Listview werden über einen Button der Inhalt eines verzeichnisses angezeigt in eine Listbox "alle *.ini's"
über den anderen Button werden werden diverse unter order geprüft und dort enthaltene ini datei angezeigt.
Also so in etwa.
ordner1\software.ini > ListBox> ordner1.ini
ordner2\software.ini > ListBox> ordner2.ini
ordner3\software.ini > ListBox> ordner3.ini
ordner4\software.ini > ListBox> ordner4.ini
ordner5\software.ini > ListBox> ordner5.ini
Funktioniert auch.
Jetzt möchte ich in der Listbox suchen in welcher ini ein bestimmter [SektionsName] und die einblenden und den rest ausblenden wie mache ich das?
Und das ganze über eine Inputbox?
In der ini Können mehrere [SektionsName] enthalten sein. aber wenn es zutrift dann einblenden rest ausbelnden oder farblich makieren als alternative eine idee?
Bin am verzweifeln....