Arrays! Hilfe!

06/29/2010 16:54 _sh0x#1
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 :( !
06/29/2010 17:17 bladerofdarknes#2
kurz und knapp:
in einem arry kannste mehrere variablen ablegen, fast grenzenlos viele
zb falls mehrere pixel das selbe bedeuten können
06/29/2010 17:51 Shadow992#3
Quote:
Originally Posted by Dawi95 View Post
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 :( !
Vielleicht hilft dir das :
[Only registered and activated users can see links. Click Here To Register...]
06/29/2010 17:56 bladerofdarknes#4
shadow wollte nicht schon wieder auf dein TuT verlinken :D
06/29/2010 17:59 _sh0x#5
Code:
if IsArray($Pixel) = True Then
		MouseMove[b]( $Pixel[0], $Pixel[1], 1[/b]
Was würde hier das Fettmarkierte bedeuten?
06/29/2010 18:17 bladerofdarknes#6
du müsstest vorher dem array erklären was pixel[0] bzw. [1] für einen wert hat :)
06/29/2010 18:43 _sh0x#7
Oh Sorry. Ja hab jetzt schnell eben ein Beispiel geschrieben. $Pixel = PixelSearch (x,y,0xFFFFFF ) .
06/29/2010 19:45 Shadow992#8
Quote:
Originally Posted by Dawi95 View Post
Oh Sorry. Ja hab jetzt schnell eben ein Beispiel geschrieben. $Pixel = PixelSearch (x,y,0xFFFFFF ) .
Ich weiß nicht wo das Problem ist , was genau verstehst du an Arrays nicht ?

Btw. Deine Beispiele sind nicht richtig und haben auch nur indirekt etwas mit Arrays zu tun ...
06/29/2010 19:48 _sh0x#9
Ich verstehe nicht wie man Arrays anwenden soll !
06/29/2010 20:15 bladerofdarknes#10
ich habe im internet ein schönes beispiel gefunden!

PHP Code:
#include <Array.au3>

;----------------------------------------------------------------------
;------------------------Array-List------------------------------------
;----------------------------------------------------------------------

;
////Array-List Erstellen///////////
$AList ObjCreate("System.Collections.ArrayList")


;
////Einträge hinzufügen///////////
$AList.add ("Test1")
$AList.add ("Test6")
$AList.add ("Test4")
$AList.add ("Test2")
$AList.add ("Test3")
$AList.add ("Test5")


;
////ArrayList sortieren///////////
$AList.sort


;////alle Elemente durchgehen///////////
For $element In $AList
    ConsoleWrite
($element & @CRLF)
Next


;////Element löschen///////////
$AList.Remove("Test2") ;Löscht das angegebene Element (soweit vorhanden)


;
////löscht Eintrag an gegebenen Index///////////
$AList.RemoveAt (3) ;Entfernt das Element an der 4. Position


;////gibt Eintrag an gegebenen Index zurück///////////
$Item $AList.Item(2) ;gibt den Index des Items an der 3. Stelle zurück


;////Eintrag an bestimmter Stelle einfügen///////////////
$AList.Insert (2"Eingefügt!") ;fügt Wert an 3. Position ein.


;
////Anzahl der Elemente bestimmen///////////
$Count $AList.Count


;////Überprüft ob ein Element vorhanden ist///////////
If $AList.Contains ("Test200"Then MsgBox(0"""Element vorhanden!") ;hier im Beispiel ist Element nicht vorhanden


;////Listen zusammenfügen///////////
$queue ObjCreate("System.Collections.Queue")
$queue.Enqueue ("QueueWert1")
$queue.Enqueue ("QueueWert2")
$queue.Enqueue ("QueueWert3")
$queue.Enqueue ("QueueWert4")
$AList.AddRange ($queue)


;
////Umwandlung in Array///////////
$Array $AList.ToArray ;kopiert Werte in ein Array (Liste ist immer noch vorhanden)
_ArrayDisplay($Array"Test")


;
////Löscht Liste///////////
$AList.Clear


;////Index eines Elementes bestimmen///////////
$Index _ArrayList_GetIndexOf($AList"Test1")

Func _ArrayList_GetIndexOf(ByRef $ArrayList$element)
    
Local $counter 0
    
    
If Not IsObj($ArrayListThen
        SetError
(1)
        Return 
0
    
EndIf
    
    For 
$elem In $AList
        
If $elem $element Then Return $counter
        $counter 
+= 1
    Next
    
    SetError
(2)
    Return 
0
EndFunc

;----------------------------------------------------------------------
;---------------------------------------------------------------------- 
ich hoffe damit wirds dir etwas klarer, aber ich sehe auch nicht ganz was dein problem ist, ich hab zwar auch ne weile gebraucht bis ich es verinnerlicht hatte, aber ist doch machbar
06/29/2010 21:52 Shadow992#11
Quote:
Originally Posted by Dawi95 View Post
Ich verstehe nicht wie man Arrays anwenden soll !
Wenn du den Link , der von mir gegeben wurde durchgemacht hättest , dann müssten Arrays zumindest einen kleinen Sinn für dich haben .
Wozu man die jetzt braucht habe ich mich am Anfang auch immer gefragt , aber du wirst schon früh genug erkennen , was Arrays bringen und warum man sie benutzt ;)

Quote:
Originally Posted by bladerofdarknes View Post
ich habe im internet ein schönes beispiel gefunden!

PHP Code:
#include <Array.au3>

;----------------------------------------------------------------------
;------------------------Array-List------------------------------------
;----------------------------------------------------------------------

;
////Array-List Erstellen///////////
$AList ObjCreate("System.Collections.ArrayList")


;
////Einträge hinzufügen///////////
$AList.add ("Test1")
$AList.add ("Test6")
$AList.add ("Test4")
$AList.add ("Test2")
$AList.add ("Test3")
$AList.add ("Test5")


;
////ArrayList sortieren///////////
$AList.sort


;////alle Elemente durchgehen///////////
For $element In $AList
    ConsoleWrite
($element & @CRLF)
Next


;////Element löschen///////////
$AList.Remove("Test2") ;Löscht das angegebene Element (soweit vorhanden)


;
////löscht Eintrag an gegebenen Index///////////
$AList.RemoveAt (3) ;Entfernt das Element an der 4. Position


;////gibt Eintrag an gegebenen Index zurück///////////
$Item $AList.Item(2) ;gibt den Index des Items an der 3. Stelle zurück


;////Eintrag an bestimmter Stelle einfügen///////////////
$AList.Insert (2"Eingefügt!") ;fügt Wert an 3. Position ein.


;
////Anzahl der Elemente bestimmen///////////
$Count $AList.Count


;////Überprüft ob ein Element vorhanden ist///////////
If $AList.Contains ("Test200"Then MsgBox(0"""Element vorhanden!") ;hier im Beispiel ist Element nicht vorhanden


;////Listen zusammenfügen///////////
$queue ObjCreate("System.Collections.Queue")
$queue.Enqueue ("QueueWert1")
$queue.Enqueue ("QueueWert2")
$queue.Enqueue ("QueueWert3")
$queue.Enqueue ("QueueWert4")
$AList.AddRange ($queue)


;
////Umwandlung in Array///////////
$Array $AList.ToArray ;kopiert Werte in ein Array (Liste ist immer noch vorhanden)
_ArrayDisplay($Array"Test")


;
////Löscht Liste///////////
$AList.Clear


;////Index eines Elementes bestimmen///////////
$Index _ArrayList_GetIndexOf($AList"Test1")

Func _ArrayList_GetIndexOf(ByRef $ArrayList$element)
    
Local $counter 0
    
    
If Not IsObj($ArrayListThen
        SetError
(1)
        Return 
0
    
EndIf
    
    For 
$elem In $AList
        
If $elem $element Then Return $counter
        $counter 
+= 1
    Next
    
    SetError
(2)
    Return 
0
EndFunc

;----------------------------------------------------------------------
;---------------------------------------------------------------------- 
ich hoffe damit wirds dir etwas klarer, aber ich sehe auch nicht ganz was dein problem ist, ich hab zwar auch ne weile gebraucht bis ich es verinnerlicht hatte, aber ist doch machbar
Keine Chance , das versteht er nicht , da tu ja selbst ich mir schwer ;)
06/29/2010 21:59 bladerofdarknes#12
ja gut da war noch ne schöne erklärung dabei ;>
die seite habe ich leider nichtmehr, tut mir leid
06/29/2010 22:09 _sh0x#13
Naja danke für eure Hilfe und dein Tut Shadow hab ich mir schon lange angeguckt versteh sie zwar immer noch nicht aber naja wie du sagtes ich werde es warscheinlich früh genug merken! Danke für eure Hilfe ! :D
06/29/2010 22:24 Smincke2#14
Arrays sind dazu da um in einer variable viele sachen zu speichern und man verwendet möglichst wenig code:
Code:
$Var1 = 1
$Var2 = 2
$Var3 = 3
$Var4 = 4
$Var5 = 5
$Var6 = 6
$Var7 = 7
$Var8 = 8
$Var9 = 9
$Var10 = 10
wird zu:
Code:
Dim $Array[10] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
oder
Code:
Dim $Array[10]
For $i = 0 To Ubound($Array) - 1
$Array[$i] = $i + 1
Next
Dauert alles nicht so lange aber die macht der Arrays ist nicht mal annäherd beschrieben. Tu dir was gutes egal welche Programmier/Scriptsprache du lernst/lernen willst du kommt an arrays nur bedingt vorbei.