Hallo ich bin neu hier im Forum, und auch relativ neu in der Programmiersprache Autoit.
Ich habe ein Problem für eine Gui Werte aus einer Textdatei auszulesen und diese dann so zu splitten das ich sie dann bei erfassten Klick auf ein Element inerhalb der ListView_1 oder ListView_2 in ListView_3 einbinden kann. Das Einbinden der Werte in ListView_1 klappt, jedoch nur in Verbindung einer Schleife und Splitstring. Dabei ist mir aber nicht klar wie ich Splitstring so einsetzte das ich gleich die ganze gesplitete Zeile zu einem Array splitte und dann nachher explizit auch aufrufen und einbinden kann.
Klick in Listview_ 1 or ListView_2 --> Schreibe eingelesene der angeklickten Zeile entsprechen als Info´s in ListView_3 als SubItem
Die Textdate ist so aufgebaut(als Dilimeter gilt #):
Spoiler anzeigen
Acrobat Update an#Registry Eintrag#Intigriert#Ab Version 8
Acrobat Update aus#Registry Eintrag#Intigriert#Ab Version 8
Hosts-Einträge setzen#Hosts setzen#Intigriert#Englisch
Office Add in Microsoft Math#Installtion#External#Deutsch,Engslisch,Spanisch
Office Powerpoint pptPlex#Installtion#External#Englisch
Office SaveAsPDForXPS#Installtion#External#Deutsch,Engslisch,Spanisch,Französisch
Für Mehr Info´s siehe Kommentare im Script
Spoiler anzeigen
#include <GuiConstants.au3>
#include <GuiListView.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <File.au3>
#include <array.au3>
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=g:\07_autoit\form2.kxf
$Form2 = GUICreate("Konfigurationstool", 741, 296, 230, 339);Window Gui
$Button1 = GUICtrlCreateButton(">", 188, 47, 30, 25, 0);Buttons
$Button2 = GUICtrlCreateButton(">>", 188, 72, 31, 25, 0)
$Button3 = GUICtrlCreateButton("<", 189, 121, 31, 25, 0)
$Button4 = GUICtrlCreateButton("<<", 189, 146, 32, 25, 0)
$Button5 = GUICtrlCreateButton("&Start", 472, 257, 75, 25, 0)
$Button6 = GUICtrlCreateButton("&Info", 552, 257, 75, 25)
$Button7 = GUICtrlCreateButton("&Beenden", 656, 257, 75, 25, 0)
$ListView_1 = GUICtrlCreateListView("Action", 16, 40, 161, 142);ListView
_GUICtrlListView_SetColumnWidth($ListView_1,0,157)
GUICtrlSendMsg($ListView_1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
GUICtrlSendMsg($ListView_1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
$ListView_2= GUICtrlCreateListView("Action", 232, 40, 161, 142)
_GUICtrlListView_SetColumnWidth($ListView_2,0,157)
GUICtrlSendMsg($ListView_2, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
GUICtrlSendMsg($ListView_2, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
$ListView_3 = GUICtrlCreateListView("Infoart|Ergebnis", 416, 40, 313, 142)
GUICtrlSendMsg(-1, 0x101E, 0, 105)
GUICtrlSendMsg(-1, 0x101E, 1, 204)
GUICtrlSendMsg($ListView_3, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
GUICtrlSendMsg($ListView_3, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
GUICtrlCreateListViewItem("Prozedur", $ListView_3)
GUICtrlCreateListViewItem("Art der Prozedur", $ListView_3)
GUICtrlCreateListViewItem("Filepath", $ListView_3)
GUICtrlCreateListViewItem("Sonst. Info", $ListView_3);ListView
$Label1 = GUICtrlCreateLabel("Informationsbox", 416, 16, 113, 20);Label
GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Wählbare Routinen", 16, 16, 136, 20)
GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Auszuführende Routinen", 232, 16, 170, 20)
GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("Process...", 16, 200, 73, 20)
GUICtrlSetFont(-1, 11, 800, 0, "MS Sans Serif")
$Label5 = GUICtrlCreateLabel("Copyright by Alex", 8, 272, 85, 17)
$Progress1 = GUICtrlCreateProgress(16, 224, 377, 25);Etc
#EndRegion ### END Koda GUI section ###
GUISetState()
_GUICtrlListView_RegisterSortCallBack(GUICtrlGetHandle($ListView_1));Dient um die ListView zu sortieren
_GUICtrlListView_RegisterSortCallBack(GUICtrlGetHandle($ListView_2));Dient um die ListView zu sortieren
dim $prozedur
DirCreate("C:\temp\")
FileInstall("G:\Rollouttool\Installationen.ini","C:\temp\Installationen.txt",1)
dim $ini=0
_FileReadToArray("C:\temp\Installationen.txt",$prozedur); alternativ für auch iniread gehen Problem stellt sich in dem Array
; Hier sollte die Datei eingelesen werden und in ein zweidimensionales Array geschrieben werden
; damit ich es wie in Zeile 83f gezeigt einfügen kann
While 1
$nMsg = GUIGetMsg()
;Infobox Wenn in der ListView_1 oder ListView_2 etwas angeklickt wird sollen zu diesen Element Info´s
; in der ListView_3 angezeigt werden
$ListView_1_index = _GUICtrlListView_GetSelectionMark($ListView_1)
$ListView_1_string = _GUICtrlListView_GetItemText($ListView_1, $ListView_1_index)
if $ini=0 then ; Erste Inizialisierung beim nach ersten Klick
$ListView_1_index_compare=$ListView_1_string
$ListView_1_string = _GUICtrlListView_GetItemText($ListView_1, $ListView_1_index)
$ini=1
EndIf
;Wenn der angeklickte Wert sich änderst wir das hiermit registriert
if $ListView_1_string = $ListView_1_index_compare then
else
$ListView_1_string = _GUICtrlListView_GetItemText($ListView_1, $ListView_1_index)
$ListView_1_index_compare=$ListView_1_string
;Hier soll dann auch das eingelese Array eingefügt werden in Listview_3
;~ _GUICtrlListView_AddSubItem($ListView_3,0,$ListView_1_string,1)
EndIf
Switch $nMsg ; --> Dieser Teil funktioniert wie gewollt
[/autoit] [autoit][/autoit] [autoit]Case $Button1
[/autoit] [autoit][/autoit] [autoit]$ListView_1_index = _GUICtrlListView_GetSelectionMark($ListView_1)
$ListView_1_string = _GUICtrlListView_GetItemText($ListView_1, $ListView_1_index)
$ListView_1_exists =_GUICtrlListView_FindText($ListView_2, $ListView_1_string)
if $ListView_1_exists = -1 then
GUICtrlCreateListViewItem($ListView_1_string,$ListView_2)
EndIf
Case $Button2
$ListView_1_count = _GUICtrlListView_GetItemCount($ListView_1)
for $i = 0 to $ListView_1_count
$ListView_1_string = _GUICtrlListView_GetItemText($ListView_1, $i)
$ListView_2_exists =_GUICtrlListview_Findtext($ListView_2, $ListView_1_string)
if $ListView_2_exists = -1 then
GUICtrlCreateListViewItem($ListView_1_string,$ListView_2)
EndIf
Next
Case $Button3
$ListView_2_index = _GUICtrlListView_GetSelectionMark($ListView_2)
$ListView_2_string = _GUICtrlListView_GetItemText($ListView_2, $ListView_2_index)
$ListView_2_exists =_GUICtrlListview_Findtext($ListView_1, $ListView_2_string)
if $ListView_2_exists = -1 then
GUICtrlCreateListViewItem($ListView_2_string,$ListView_1)
EndIf
Sleep(100)
_GUICtrlListView_DeleteItem($ListView_2,$ListView_2_index)
Case $Button4
$ListView_2_count = _GUICtrlListView_GetItemCount($ListView_2)
for $i = 0 to $ListView_2_count
_GUICtrlListView_DeleteAllItems($ListView_2)
Next
Case $Button6
MsgBox(0,"Info","Wie funktioniert dieses Programm?"&@CRLF&"1.Element auswählen"&@CRLF&"2.Mit Hilfe der Pfeile auf die Rechte Seite bringen"&@CRLF&"3.Programm mit (Start) starten und die ausgewählten Installationsroutinen werden installiert")
Case $Button7
$abbruch = MsgBox(1,"Beenden","Wollen sie das Programm wirklich beeenden?")
if $abbruch = 1 Then
$GUI_EVENT_CLOSE
Exit
EndIf
Case $GUI_EVENT_CLOSE
_GUICtrlListView_UnRegisterSortCallBack(GUICtrlGetHandle($ListView_1));Dient um die ListView zu sortieren
_GUICtrlListView_UnRegisterSortCallBack(GUICtrlGetHandle($ListView_2));Dient um die ListView zu sortieren
Exit
Case $ListView_1
_GUICtrlListView_SortItems($ListView_1, GUICtrlGetState($ListView_1));Dient um die ListView zu sortieren
Case $ListView_2
_GUICtrlListView_SortItems($ListView_2, GUICtrlGetState($ListView_2));Dient um die ListView zu sortieren
EndSwitch ;--> Dieser Teil funktioniert wie gewollt
WEnd