|
You last visited: Today at 23:40
Advertisement
Hilfe bei Listbox/ Arrays
Discussion on Hilfe bei Listbox/ Arrays within the AutoIt forum part of the Coders Den category.
10/16/2011, 13:09
|
#1
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Hilfe bei Listbox/ Arrays
Hallo.
Ich habe mich eigentlich noch nie mit dem Thema "Arrays" befasst.
So beschloss ich im Internet nach ein paar Tutorials gesucht und bin fündig geworden. Ich habe das mit den 1Dymensionalen Arrays ganz gut Kappiert.
Nun wollt ich euch Fragen wie ich 2D Arrays einen Wert zuweisen kann.
Also bei 1D arrays ist das ja so!
PHP Code:
Local $Array1D[2] $Array1D[0] = 0 $Array1D[1] = 1
Nun würd ich gerne wissen wie ich das mit den 2D Array´s machen kann.
Bisher weis ich nur wie ich diese deklarieren kann.
PHP Code:
Local $Array2D[5][2] ; (5 Elemente) (2 Spalten) $Array2D[0][1] ; Wie kann ich dem Element und der Spalte einen Wert zuweisen?
Wie kann ich dem Element und der Spalte einen Wert zuweisen?
Hätt ich fast vergessen  Wie kann ich die Werte (Zahlen) in einer Listbox einfügen ?
|
|
|
10/16/2011, 15:21
|
#2
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
|
Wie kann ich die Werte (Zahlen) in einer Listbox einfügen ?
|
hmm? na einfach mit guictrlsetdata(list, array2d[x][y]) einfügen?
PHP Code:
Local $ar2D[5][2] $ar2D[0][0] = 'Zeile1/Spalte1' $ar2D[0][1] = 'Zeile1/Spalte2' $ar2D[1][0] = 'Zeile2/Spalte1' $ar2D[1][1] = 'Zeile2/Spalte2' $ar2D[2][0] = 'Zeile3/Spalte1' $ar2D[2][1] = 'Zeile3/Spalte2' $ar2D[3][0] = 'Zeile4/Spalte1' $ar2D[3][1] = 'Zeile4/Spalte2' $ar2D[4][0] = 'Zeile5/Spalte1' $ar2D[4][1] = 'Zeile5/Spalte2'
$form = GUICreate("", 455, 330, 192, 124) $List1 = GUICtrlCreateList("", 32, 16, 377, 279) GUISetState(@SW_SHOW)
For $i=0 To 4 For $x=0 To 1 GUICtrlSetData($List1, $ar2D[$i][$x]) Next Next
While 1 If GUIGetMsg() == -3 Then Exit WEnd
|
|
|
10/16/2011, 15:33
|
#3
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by omer36
hmm? na einfach mit guictrlsetdata(list, array2d[x][y]) einfügen?
PHP Code:
Local $ar2D[5][2]
$ar2D[0][0] = 'Zeile1/Spalte1'
$ar2D[0][1] = 'Zeile1/Spalte2'
$ar2D[1][0] = 'Zeile2/Spalte1'
$ar2D[1][1] = 'Zeile2/Spalte2'
$ar2D[2][0] = 'Zeile3/Spalte1'
$ar2D[2][1] = 'Zeile3/Spalte2'
$ar2D[3][0] = 'Zeile4/Spalte1'
$ar2D[3][1] = 'Zeile4/Spalte2'
$ar2D[4][0] = 'Zeile5/Spalte1'
$ar2D[4][1] = 'Zeile5/Spalte2'
$form = GUICreate("", 455, 330, 192, 124)
$List1 = GUICtrlCreateList("", 32, 16, 377, 279)
GUISetState(@SW_SHOW)
For $i=0 To 4
For $x=0 To 1
GUICtrlSetData($List1, $ar2D[$i][$x])
Next
Next
While 1
If GUIGetMsg() == -3 Then Exit
WEnd
|
Das wir aber nur Eindimensional in die Listbox eingetragen :/
Kann man es so machen, dass es 2D. enigetragen wird ?
|
|
|
10/16/2011, 15:35
|
#4
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
Originally Posted by Logtetsch
Das wir aber nur Eindimensional in die Listbox eingetragen :/
Kann man es so machen, dass es 2D. enigetragen wird ?
|
wie meinste das?
|
|
|
10/16/2011, 15:58
|
#5
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by omer36
wie meinste das?
|
Was ich wollte war, dass die werte so stehen.
1 | 2
1 | 2
1 | 2
1 | 2
1 | 2
Aber bei dir geht das so :
1
2
1
2
1
2
1
2
|
|
|
10/16/2011, 16:23
|
#6
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Das zeichen "|" kann man (soweit ich weiß) nicht in einer Listbox benutzen, aber meinst du im Grunde so?
PHP Code:
For $i=0 To 4 GUICtrlSetData($List1, $ar2D[$i][0] & ' --- ' & $ar2D[$i][1]) Next
|
|
|
10/16/2011, 17:11
|
#7
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Ich wollte das ungefähr sowie er in seinem Bot ....
|
|
|
10/16/2011, 17:39
|
#8
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
Originally Posted by Logtetsch
Ich wollte das ungefähr sowie er in seinem Bot ....

|
Was er benutzt, sieht für mich eher aus wie eine GUICtrlCreateListView()
PHP Code:
Local $ar2D[5][2]
$ar2D[0][0] = 'Zeile1/Spalte1'
$ar2D[0][1] = 'Zeile1/Spalte2'
$ar2D[1][0] = 'Zeile2/Spalte1'
$ar2D[1][1] = 'Zeile2/Spalte2'
$ar2D[2][0] = 'Zeile3/Spalte1'
$ar2D[2][1] = 'Zeile3/Spalte2'
$ar2D[3][0] = 'Zeile4/Spalte1'
$ar2D[3][1] = 'Zeile4/Spalte2'
$ar2D[4][0] = 'Zeile5/Spalte1'
$ar2D[4][1] = 'Zeile5/Spalte2'
$form = GUICreate("", 455, 330, 192, 124)
$List1 = GUICtrlCreateListView("blaa|blubb", 32, 16, 377, 279)
GUISetState(@SW_SHOW)
For $i=0 To 4
GUICtrlCreateListViewItem($ar2D[$i][0] & '|' & $ar2D[$i][1], $List1)
Next
While 1
If GUIGetMsg() == -3 Then Exit
WEnd
Meinst du so?
|
|
|
10/16/2011, 18:27
|
#9
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Edit : Ja, sowas meinte ich. Ich habe jezz ne Frage. Könntest du dir das mal angucken und sagen wie ich sowas machen kann, dass wenn ich auf Button1 drücke, sich ein neues Element erstellt mit dem @HOUR , @MIN, @SEC ? Und wenn man auf Button2 drückt, soll das ausgewählte Element gelöscht werden ....
PHP Code:
Local $ArrayList[5] Global $Hour = @HOUR Global $Sec = @SEC Global $Min = @MIN
#include <array.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 234, 249, 192, 124) $ListView1 = GUICtrlCreateListView("Stunde | Minute | Sekunde", 8, 8, 218, 166) $Button1 = GUICtrlCreateButton("Hinzufügen", 8, 184, 75, 25) $Button2 = GUICtrlCreateButton("Delete", 152, 184, 75, 25) $Button3 = GUICtrlCreateButton("Exit", 80, 216, 75, 25) $ArrayList[0] = GUICtrlCreateListViewItem($Time & "|" & $Min & "|" & $Sec, $ListView1) $ArrayList[1] = GUICtrlCreateListViewItem($Time & "|" & $Min & "|" & $Sec, $ListView1) $ArrayList[2] = GUICtrlCreateListViewItem($Time & "|" & $Min & "|" & $Sec, $ListView1) $ArrayList[3] = GUICtrlCreateListViewItem($Time & "|" & $Min & "|" & $Sec, $ListView1) $ArrayList[4] = GUICtrlCreateListViewItem($Time & "|" & $Min & "|" & $Sec, $ListView1) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit
Case $Button1
Case $Button2
Case $Button3 Exit
EndSwitch WEnd
|
|
|
10/16/2011, 19:13
|
#10
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
einfügen:
unter Case $Button1,
GUICtrlCreateListViewItem(@HOUR & "|" & @MIN & "|" & @SEC, $ListView1) hinschreiben....
löschen:
_GUICtrlListView_DeleteItemsSelected($ListView1)
|
|
|
10/16/2011, 19:21
|
#11
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by omer36
einfügen:
unter Case $Button1,
GUICtrlCreateListViewItem(@HOUR & "|" & @MIN & "|" & @SEC, $ListView1) hinschreiben....
löschen:
_GUICtrlListView_DeleteItemsSelected($ListView1)
|
Man braucht aber für _GUICtrlListView_DeleteItemsSelected ne bestimmte #include Datei.
Hab ich, aber dann entsteht sone Fehler MEldung
Bild :
|
|
|
10/16/2011, 20:40
|
#12
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
guiheader.au3?
#Include <GuiListView.au3>
mal ehrlich, wenn du nichtmal ein include suchen kannst (einfach "_GUICtrlListView_DeleteItemsSelected" markieren und F1 drücken, schon stehts oben **** und fett
Quote:
#Include <GuiListView.au3>
_GUICtrlListView_DeleteItemsSelected($hWnd)
|
) solltest du dir echtmal gedanken machen...
|
|
|
10/16/2011, 22:46
|
#13
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Ok. Soweit so Gut. Nun würd ich nochwas wissen.
PHP Code:
Local $Array[2]
#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 268, 296, 192, 124) $ListView1 = GUICtrlCreateListView("Stunde | Minute | Sekunde", 8, 8, 250, 150) $Button1 = GUICtrlCreateButton("Hinzufügen", 8, 176, 75, 25) $Button2 = GUICtrlCreateButton("Start", 184, 176, 75, 25) $Button3 = GUICtrlCreateButton("Entfernen", 96, 176, 75, 25) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit
Case $Button1 $Array[1] = GUICtrlCreateListViewItem (@Hour & " | " & @MIN & " | " & @SEC ,$ListView1)
Case $Button3 $Delete = _GUICtrlListView_DeleteItemsSelected ($ListView1)
Case $Button2 $Test = _GUICtrlListView_GetItemTextArray($ListView1,$Array[1]) MsgBox (0,"",$Test)
EndSwitch WEnd
Angenommen da sind schon 4 Elemente vorhanden. Wie kann ich diese peer MsgBox aufrufen ?
Beispiel :
11 | 55 | 55
11 | 55 | 56
11 | 55 | 57
11 | 55 | 58
----------------
Wie kann ich dann eine Msgbox aufrufen, die mir die werte einzeln anzeigt ?
msg Logtetsch
|
|
|
10/18/2011, 15:23
|
#14
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Quote:
Originally Posted by klavier22
Edit seh grad die Hilfe - hast dich also doch nicht damit beschäftigt.
siehe Hilfe zu "_GUICtrlListView_GetItemTextArray"
for schleifen müsstest du können - so schwer ist das dann auch nicht.
|
Hab ein neues Script angefärtigt.
PHP Code:
#RequireAdmin
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <Pointer.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Logtetsch-Bot v.1.0", 338, 332, 192, 124)
$ListView1 = GUICtrlCreateListView("X-Achse | Y-Achse", 16, 16, 306, 214)
GUISetBkColor (0x000000)
$sHandel = GUICtrlGetHandle ($ListView1)
$Button1 = GUICtrlCreateButton("Hinzufügen", 16, 248, 107, 25)
$Button2 = GUICtrlCreateButton("Entfernen", 216, 248, 107, 25)
$Button3 = GUICtrlCreateButton("Start/ Pause", 128, 248, 83, 25)
$Button4 = GUICtrlCreateButton ("Speichern",16,280,107,25)
$Button5 = GUICtrlCreateButton ("Laden",216,280,107,25)
$Button6 = GUICtrlCreateButton ("Clear",128,280,83,25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Local $DBank = @ScriptDir & "\File.txt"
Global $PID = ProcessExists ("TClient.exe")
Global $Open = _MemoryOpen ($PID)
Global $end = _MemoryClose ($Open)
Global $ModuleX = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00331738 ; ====== Meine X-Koordinate
Global $OffsetX[5]
$OffsetX[0] = 0
$OffsetX[1] = 0xC8
$OffsetX[2] = 0x338
$OffsetX[3] = 0x6B0
$OffsetX[4] = 0x84
Global $ModuleXFlimmer = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00315AA8 ; ====== Meine X-Koordinate (wenn ich die Value verändere Flimmert mein Typ)
Global $OffsetXFlimmer[5]
$OffsetXFlimmer[0] = 0
$OffsetXFlimmer[1] = 0x130
$OffsetXFlimmer[2] = 0x338
$OffsetXFlimmer[3] = 0x6B0
$OffsetXFlimmer[4] = 0x8C
Global $ModuleY = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00315AA8 ; ======== Mein Y-Koordinate
Global $OffsetY[4]
$OffsetY[0] = 0
$OffsetY[1] = 0x338
$OffsetY[2] = 0x6B0
$OffsetY[3] = 0x8C
Global $ModuleYFlimmer = _MemoryModuleGetBaseAddress ($PID,"TClient.exe") + 0x00315224 ; ========== Meine Y-Koordinate (wenn ich die Value verändere flimmert mein Typ)
Global $OffsetYFlimmer[4]
$OffsetYFlimmer[0] = 0
$OffsetYFlimmer[1] = 0x36C
$OffsetYFlimmer[2] = 0x258
$OffsetYFlimmer[3] = 0x4C
Global $BaseXMob = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x00315224 ; =============== X-Koordinate der Monster
Global $OffsetXMob[3]
$OffsetXMob[0] = 0
$OffsetXMob[1] = 0x790
$OffsetXMob[2] = 0x84
Global $BaseYMob = _MemoryModuleGetBaseAddress ($PID, "TClient.exe") + 0x003316DC ; ================ Y-Koordinate der Monster
Global $OffsetYMob[4]
$OffsetYMob[0] = 0
$OffsetYMob[1] = 0x130
$OffsetYMob[2] = 0x790
$OffsetYMob[3] = 0x8C
Global $ModuleShop = _MemoryModuleGetBaseAddress ($PID,"TClient.exe") + 0x00315224 ; ================ Pointer für den Shop... Autoverkauf
Global $OffsetShop[3]
$OffsetShop [0] = 0
$OffsetShop [1] = 0x33C
$OffsetShop [2] = 0x140
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1 ; ER fügt die X-Y Koordinaten in die Listview hinzu.
$Open = _MemoryOpen ($PID)
$Read1 = _MemoryPointerRead ($ModuleX, $Open, $OffsetX, "float") ; ModuleX = Meine X Koordinate
$Read2 = _MemoryPointerRead ($ModuleY, $Open, $OffsetY, "float") ; ModuleY = Meine Y Koordinate
$createItem = GUICtrlCreateListViewItem ($Read1[1] & " | " & $Read2[1] , $ListView1) ;Erstellt ein neues Element mit den X-Y Koordinaten.
$end = _MemoryClose ($Open)
Case $Button2 ; Löscht die ausgewählten x-Y Koordinaten
_GUICtrlListView_DeleteItemsSelected ($ListView1)
Case $Button3
Case $Button4
Local $Item
Local $Count = _GUICtrlListView_GetItemCount ($sHandel) -1
Local $File = FileOpen ($DBank, 2)
If $File <> -1 Then
For $i = 0 to $Count
$Item = _GUICtrlListView_GetItemTextString ($sHandel, $i)
FileWriteLine ($File, $Item)
Next
FileClose ($File)
EndIf
MsgBox (0,"Save","Datei wurde erfolgreich gespeichert!")
Case $Button5
Local $Item
Local $File = FileOpen ($DBank, 0)
If $File <> -1 Then
_GUICtrlListView_BeginUpdate ($sHandel)
While True
$Item = FileReadLine ($File)
If @error then ExitLoop
GUICtrlCreateListViewItem ($Item, $ListView1)
WEnd
_GUICtrlListView_EndUpdate ($sHandel)
FileClose ($File)
EndIf
MsgBox (0,"Load","Datei wurde erfolgreich geladen!")
Case $Button6
If MsgBox(256 + 32 + 4, "Clear", "Wollen sie wirklich alle Einträge löschen?") = 6 Then _GUICtrlListView_DeleteAllItems($sHandel)
EndSwitch
WEnd
Wie kann ich jezz den Button3 so programmieren, dass er mich nacheinander zu den gespeicherten Koordinaten Portet ???
|
|
|
10/18/2011, 21:59
|
#15
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
ich würde bei GetTextArray bleiben.
Das ganze wieder in eine for schleife, dann haste ja in $Array[1] die 1. und in $Array[2] die 2. Koordinate stehen. Dann das ganze an deine teleport funktion übergeben - fertig
also ungefähr so:
PHP Code:
$count = _GUICtrlListView_GetItemCount($ListView1) for $x = 0 to $count - 1 $Text = _GUICtrlListView_GetItemTextArray($ListView1, $x) MsgBox(4096, "", $Text[1] & " | " & $Text[2]) TeleportX($Text[1]) TeleportY($Text[2]) Next
|
|
|
 |
|
Similar Threads
|
C++ Mehrdimensionale Arrays
08/14/2011 - C/C++ - 7 Replies
Hey Leute,
Ich lern C++ schon seit 2 Monaten und bin jetzt bei den Arrays und Strukturen
(Vll. brauchte ich ein bissl. lange,aber dafür behersche ich das gelernte zu 100%).
und zwar habe ich da ein BspQuelltext:
#include <iostream>
using namespace std;
// Hauptprogramm
|
vereinfachen mit arrays
02/03/2011 - AutoIt - 2 Replies
ich versuche grad das hier zu vereinfachen:
$Fach1=IniRead("C:\info.ini","Fach ","1","")
$Fach2=IniRead("C:\info.ini","Fach ","2","")
$Fach3=IniRead("C:\info.ini","Fach ","3","")
$Fach4=IniRead("C:\info.ini","Fach ","4","")
$Fach5=IniRead("C:\info.ini","Fach ","5","")
$Fach6=IniRead("C:\info.ini","Fach ","6","")
$Fach7=IniRead("C:\info.ini","Fach ","7","")
$Fach8=IniRead("C:\info.ini","Fach ","8","")
|
Arrays! Hilfe!
06/29/2010 - AutoIt - 13 Replies
Hallo e*pvp,
Es ist mir jetzt peinlich aber irgendwann musste ich es fragen! Also Ich habe ein Problem undzwar versteh ich nicht was Arrays sind. Ich versteh den Sinn nicht und nicht wie man sie Anwenden kann! Die ganzen Texte aus Wikipedia und Arrays Tutorials helfen mit nicht! Bitte hilft mir was genau Arrays sind und wie man sie sinnvoll anwenden kann! Ich hoffe einer kann mir helfen :( !
|
Hilfe in Info mit Arrays via Java
12/03/2009 - General Coding - 9 Replies
Heho,ich sitz grad hilflos in Info.
Kann mir wer mit dieser Aufgabenstellung helfen?
Berechnen Sie die Fakultät bis 10! und speichern Sie sie in einem Array. (Unter 5! gesprochen "Fünf Fakultät", versteht man als 1*2*3*4*5=120.
Es wird definiert: 0! = 1)
wär nett,
lg
|
All times are GMT +1. The time now is 23:41.
|
|