Channel Editor für den VDR (winClient)

  • So ich versuche mal wieder was mit AutoIt so geht, bzw, ich mir zutraue :)

    Ich dachte ein Channeleditor wäre mal eine interessante Herausforderung:

    Nun hänge ich aber schon ziemlich am Anfang :(

    Ich möchte aus einer vorhandenen channels.conf den Inhalt in einer Gui ausgeben, womit ich die Zeilen sortieren & editieren lassen kann.

    Mit sortieren meine ich die Position ändern, nach Radio/Video-Pids vielleicht später.

    Abschliessend muss der Inhalt des Arrays wieder in eine datei zurückgeschrieben werden.

    Trenner in der Orginal Datei ":" im File_array "|" // Ein Haken bereits war schon vorhande Pipes in der org. Conf :)

    Genug gschwafelt, hier der erste Versuch:

    [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <GUIConstants.au3>
    dim $var
    _FileReadToArray(@ScriptDir & "\channels.conf",$var)
    GUICreate("Channels.conf - Editor",750,650, 100,200,-1,$WS_EX_ACCEPTFILES)
    ;~ GUISetBkColor (0x00E0FFFF) ; will change background color
    $listview = GuiCtrlCreateListView ("ID|Name|Frequenz|Parameter|Quelle|SRate|VPID|APID|TPID|CA|SID|NID|TID|RID|",10,10,630,500);,$LVS_SORTDESCENDING)
    for $i = 1 to $var[0]
    If StringLeft($var[$i],1)=":" Then
    GUICtrlSetData(GuiCtrlCreateListViewItem($i & "|" & $var[$i],$listview),$i)
    Else
    GUICtrlSetData(GuiCtrlCreateListViewItem($i & "|" & StringReplace(StringReplace($var[$i], "|","`"), ":","|"),$listview),$i)
    EndIf
    Next
    $row_up = GuiCtrlCreateButton ("Up",675,170,40,40)
    $row_down = GuiCtrlCreateButton ("Down",675,210,40,40)
    $row_update = GuiCtrlCreateButton ("Update Row",570,530,70,20)
    $input1=GuiCtrlCreateInput("",10,530, 550)
    GuiCtrlSetState(-1,$GUI_DROPACCEPTED) ; to allow drag and dropping
    GuiSetState()
    Do
    $msg = GuiGetMsg ()

    [/autoit][autoit][/autoit][autoit]

    Select
    Case $msg = $row_update
    GUICtrlSetData(GUICtrlRead($Input1),$listview) ;macht nicht was es soll // am Besten die Zeile mit der ID ändern / ok die weiß er noch nicht
    ;~ GUICtrlSetData(GuiCtrlCreateListViewItem(GUICtrlRead($input1),$listview),1) ; fügt am Ende einen neuen Eintrag hinzu /fast richtig / ID passt nicht
    ;~ MsgBox(0,"listview item",GUICtrlRead(GUICtrlRead($listview)),5) ; zeigt selektierte Zeile in MessageBox an
    Case $msg = $listview
    MsgBox(0,"listview", "clicked="& GuiCtrlGetState($listview),2)
    EndSelect
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]