Hallo, ich hab ein Problem..möchte ein Listview in mein skript einbauen, dass soll die Elemente aus der Liste von einer .ini ziehen.
weiß jemand wie das geht?
Am besten so einfach wie möglich bin nämlich anfänger;-)
Dake schon mal!
Hallo, ich hab ein Problem..möchte ein Listview in mein skript einbauen, dass soll die Elemente aus der Liste von einer .ini ziehen.
weiß jemand wie das geht?
Am besten so einfach wie möglich bin nämlich anfänger;-)
Dake schon mal!
Ini in Array lesen,
For - Schleife zum Bestücken des Listviews.
In der Hilfe lesen: IniReadSection, For-Next-Schleife, GuiCtrlCreateListViewItem, evtl Arrays generell, falls das noch fehlt.
limette
Um meinen Vorpst mal in Code zu fassen:
#include <GuiListView.au3>
$aIni = IniReadSection("Inidatei.ini","DeineSection") ; Ini in Array lesen
If @error Then Exit MsgBox(0,"","Ini kann nicht gelesen werden")
Local $hListView = GUICtrlGetHandle($cListView)
_GUICtrlListView_DeleteAllItems($hListView) ; Alle Items löschen
For $i = 1 To $aIni[0][0]
_GUICtrlListView_AddItem($hListView,$aIni[$i][0]) ; Item hinzufügen (Schlüssel)
_GUICtrlListView_AddSubItem($hListView,$i-1,$aIni[$i][1],1) ; SubItem hinzufügen (Wert)
Next
LG
okay, aber was ist ein array?
und geht das nicht so?
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 1016, 807, 159, 112)
$JuBi = GUICtrlCreateLabel(" JuBi Beachers-Cup", -13, -5, 1148, 101)
GUICtrlSetFont(-1, 60, 400, 0, "Monotype Corsiva")
GUICtrlSetColor(-1, 0xFFFF00)
GUICtrlSetBkColor(-1, 0x316AC5)
$Label1 = GUICtrlCreateLabel("Spielplan", 312, 104, 144, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Gruppe A", 320, 168, 114, 33)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
$ListView1 = GUICtrlCreateListView("Team 1 | Team 2", 24, 208, 506, 590)
$ListView1_0 = GUICtrlCreateListViewItem($a "|" $b , $ListView1) <-----
$a ist noch nicht definiert aber wird es noch
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
und geht das nicht so?
Nein so gehts nicht.
Hier mal mein post von eben in dein Script integriert (das geht sogar per Copy n paste - mit 2 kleinen "manuellen" Änderungen )
#include <GUIConstants.au3>
#include <GuiListView.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 1016, 807, 159, 112)
$JuBi = GUICtrlCreateLabel(" JuBi Beachers-Cup", -13, -5, 1148, 101)
GUICtrlSetFont(-1, 60, 400, 0, "Monotype Corsiva")
GUICtrlSetColor(-1, 0xFFFF00)
GUICtrlSetBkColor(-1, 0x316AC5)
$Label1 = GUICtrlCreateLabel("Spielplan", 312, 104, 144, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Gruppe A", 320, 168, 114, 33)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
$ListView1 = GUICtrlCreateListView("Team 1 | Team 2", 24, 208, 506, 590)
$aIni = IniReadSection("Inidatei.ini","DeineSection") ; Ini in Array lesen
If @error Then Exit MsgBox(0,"","Ini kann nicht gelesen werden")
Local $hListView = GUICtrlGetHandle($ListView1)
_GUICtrlListView_DeleteAllItems($hListView) ; Alle Items löschen
For $i = 1 To $aIni[0][0]
_GUICtrlListView_AddItem($hListView,$aIni[$i][0]) ; Item hinzufügen (Schlüssel)
_GUICtrlListView_AddSubItem($hListView,$i-1,$aIni[$i][1],1) ; SubItem hinzufügen (Wert)
Next
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
So?
//EDIT gerade auch mal getestet mit folgender Ini:
j, danke das kommt der sache schon nächer aber ich versteh nicht ganz, was du mir dem
For $i = 1 To $aIni[0][0]
_GUICtrlListView_AddItem($hListView,$aIni[$i][0]) ; Item hinzufügen (Schlüssel)
_GUICtrlListView_AddSubItem($hListView,$i-1,$aIni[$i][1],1) ; SubItem hinzufügen (Wert)
Next
meinst...
Soll ich vielleicht mal erzählen, wofür ich mein Skript mache?
In dem Part schreibt er die aus der Ini gelesenen Werte in die Listview.
Du solltest dir unbedingt ein Tut zu Arrays reinziehen, Bugfix hat da was veröffentlicht
Okay mache ich jetzt..
also meine Ini sieht so aus:
[Gruppe A]
1)=Homies
2)=Nüsse
3)=Chipmunks
Nun möchte ich dass alle mal gegeneinander spielen, und der Spielplan in einer Liste angezeigt wird..
wie bekomme ich das dann hin?
Das hättest du sagen sollen, von dieser Konstellation ist keiner ausgegangen, wenn du sagst "Von Ini in Listview".
Ich wäre davon ausgegangen, dass es sowas ist wie
[Gruppe A]
Homies = Nüsse
Homies = Chipmunks
Nüsse = Chipmunks
Ich schau mir das mal kurz an...
So müsste das funktionieren.
- Natürlich noch an Listview & Ini anpassen & die deklaration von $player rausnehmen, das war nur zum Testen. =)
;$player = IniReadSection( 'deine.ini', 'player' )
[/autoit][autoit][/autoit][autoit]Local $player[5][2] = [ [ 4, 0 ], [ 0, 'a' ], [ 0, 'b' ], [ 0, 'c' ], [ 0, 'd' ] ]
[/autoit][autoit][/autoit][autoit]For $i = 1 To $player[0][0]
For $j = $i To $player[0][0]
If $i = $j Then ContinueLoop
;GUICtrlCreateListViewItem( $player[$i][1] & '|' & $player[$j][1], $ListView1 )
ConsoleWrite( $player[$i][1] & ' - ' & $player[$j][1] & @CRLF )
Next
Next
Zorro, mir sind die UDF-Befehle zur Listview nicht geläufig,...
Okay cool danke;-)
Also das mache ich dann halt mit allen anderen Elementen..
wenn ich das habe, möchte ich, dassIch den Spielstand eintippen kann und er mit dann sagt wer am meisten Punkte hat..
geht das auch?(sorry, dass ich jetzt vom eigentllichen Thema abweiche..)
Hm. Dazu würde ich einen extra Bereich erstellen - zwei Inputfelder, einen Absenden-Button, ein Label mit Text wie "Spielstand für das Spiel: a - b eintragen".
Dann halt bei Klick auf ein ListViewItem den Text des Labels aktualisieren - Hinweis: OnEventMode dürfte da angebracht sein - Und in der Ini extra die Punkte der Mannschaften passend aufaddieren.
Dann kannst du die Mannschaften & Werte in eine extra Listview eintragen und die nach Größe sortieren lassen...
Ist etwas mehr, wo du dich reinlesen musst..
Aber das ist ja auch dein Projekt, nicht unseres
Vielleicht bastelt dir SeuBo ja noch was zusammen
Soo hier jetzt nochmal dein Script von eben auf deine Ini angepasst.
Viel Spaß
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 1016, 807, 159, 112)
$JuBi = GUICtrlCreateLabel(" JuBi Beachers-Cup", -13, -5, 1148, 101)
GUICtrlSetFont(-1, 60, 400, 0, "Monotype Corsiva")
GUICtrlSetColor(-1, 0xFFFF00)
GUICtrlSetBkColor(-1, 0x316AC5)
$Label1 = GUICtrlCreateLabel("Spielplan", 312, 104, 144, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Gruppe A", 320, 168, 114, 33)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
$ListView1 = GUICtrlCreateListView("Team 1 | Team 2", 24, 208, 506, 590)
$hListView = GUICtrlGetHandle($ListView1)
; Von hier
_GUICtrlListView_SetColumnWidth($hListView,0,253)
_GUICtrlListView_SetColumnWidth($hListView,1,253)
$sIniDatei = @ScriptDir & "\Gruppen.ini"
$aGruppe = IniReadSection($sIniDatei, "Gruppe A")
Dim $aTmp[$aGruppe[0][0]]
For $j = 1 To $aGruppe[0][0] ; in Temp-Array übertragen
$aTmp[$j - 1] = $aGruppe[$j][1]
Next
$aTmp = _ArrayCombinations($aTmp, 2, "=")
For $j = 1 To $aTmp[0]
$aSplit = StringSplit($aTmp[$j], "=", 3)
_GUICtrlListView_AddItem($hListView,$aSplit[0])
_GUICtrlListView_AddSubItem($hListView,$j-1,$aSplit[1],1)
Next
; Bis hier
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Ich geh jetzt erstmal in die Sonne
Also ich hab das jetzt so gemacht:
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 1016, 807, 159, 112)
$JuBi = GUICtrlCreateLabel(" JuBi Beachers-Cup", -13, -5, 1148, 101)
GUICtrlSetFont(-1, 60, 400, 0, "Monotype Corsiva")
GUICtrlSetColor(-1, 0xFFFF00)
GUICtrlSetBkColor(-1, 0x316AC5)
$Label1 = GUICtrlCreateLabel("Spielplan", 312, 104, 144, 41)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Gruppe A", 320, 168, 114, 33)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
$ListView1 = GUICtrlCreateListView("Team 1 | Team 2", 24, 208, 506, 590)
$a1 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "1)","error")
$a2 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "2)","error")
$a1 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "3)","error")
$a1 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "4)","error")
$a1 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "5)","error")
$a1 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "6)","error")
$a1 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "7)","error")
$List1 = GUICtrlCreateListViewItem( $a7 "|" $a2 ,$ListView1 ) <---------- hier hab ich das so probiert
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Aber das klappt bei mir in der 20. Zeile nicht..
Was kann ich da machen???
Bitte helft mir,denn so bekomme ich das nicht hin, wie das oben angeboten wurde...
danke
Das macht doch jetzt grad keinen Sinn mehr - warum hast du unsere Lösungen nicht verwendet ?
Sondern beharrst immer noch auf deinem ersten Versuch, der bereits als nicht angemessen abgestempelt wurde ?
Deine Version ist einfach nur undynamisch, funktioniert zumindest teils, wenn du die Variablen richtig benennst.
[autoit]$a1 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "1)","error")
$a2 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "2)","error")
$a3 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "3)","error")
$a4 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "4)","error")
$a5 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "5)","error")
$a6 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "6)","error")
$a7 = IniRead ( @Scriptdir & "\Teams.ini", "Gruppe A", "7)","error")
Aber wie gesagt, das ist äußerst unpassend für dein Vorhaben.... -.-
Weil ich eure Version nicht verstehe mit den Arrays..habe mir schon alles zu den arrays durchgelesen...
Wenn du dir das alles mit Verstand durchgelesen - und nicht nur überflogen - hast, dann dürftest du mit etwas Nachlesen in der Hilfe auch unsere Lösungen verstehen.
Aber dass du jetzt unsere Lösungen einfach ignorierst und deinen Fehler wiederholst..
unfassbar.
Wir müssen dir nicht helfen. Ist 'ne freiwillige Sache, aber sowas vermiest einen echt den Spaß am Helfen -.-
Arrays - einfach mal Beispiele durchprobieren, selber tüfteln, dann kriegst du das auch raus. Aber ohne wirst du wohl erstmal nicht weiterkommen.
Sind übrigens in gefühlten hundermillionen anderen Topics bis ins kleinste Detail erklärt... und wenn nach dem Tut von Bugfix noch Unklarheiten sind, die du auch via Google & Forensuche nicht beseitigen kannst - was ziemlich unwahrscheinlich ist - dann kannst du auch einfach nochmal nachfragen.
Aber nein - was ich nicht verstehe schmeiß ich in die Ecke und spiel mit dem fehlerhaften Mist weiter rum.
Bitte... mach doch... -.-
Hab mir das gerade nocheinmal durchgelesen..also bei mir ist das Problem, dass er Meine Ini falsch anzeigt..wie kann ich machen, dass er iniread("Teams.ini","Gruppe A", "7) ausliest?
das kann ich nicht machen..also dass er genau dieses Element in der 7. Zeile der Ini nimmt und gegen das z.B. 2. Element stellt...
Bitte helft mir doch...
Um ehrlich zu sein versteh ich kein Stück von dem, was du eigentlich willst...