Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 08:40

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Mit einem Array arbeiten

Discussion on Mit einem Array arbeiten within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Mit einem Array arbeiten

Moin,

ich versuche gerade, sinnvoll mit einem definierten Array zu arbeiten:

dim $myArray[1][2]

Ich möchte eine Funktion erstellen, die dem Array den im Funktionsparameter angegebenen Wert hinzufügt oder wenn selbiger bereits im Array existiert, aus selbigem entfernt:

Code:
Func addToArr($param)

If 'existiert noch nicht' Then
	redim $myArray[(UBound($attached)+1)-1][2]
	
	$myArray[0][0] = $param
	$myArray[0][1] = 1
ElseIf 'existiert bereits' Then
	_ArrayDelete($param)
EndIf

EndFunc
So in etwa hab ich mir das vorgestellt. Wie mache ich das am Besten!?
Whoknowsit is offline  
Old 12/02/2011, 14:16   #2
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Whoknowsit View Post
Moin,

ich versuche gerade, sinnvoll mit einem definierten Array zu arbeiten:

dim $myArray[1][2]

Ich möchte eine Funktion erstellen, die dem Array den im Funktionsparameter angegebenen Wert hinzufügt oder wenn selbiger bereits im Array existiert, aus selbigem entfernt:

Code:
Func addToArr($param)

If 'existiert noch nicht' Then
	redim $myArray[(UBound($attached)+1)-1][2]
	
	$myArray[0][0] = $param
	$myArray[0][1] = 1
ElseIf 'existiert bereits' Then
	_ArrayDelete($param)
EndIf

EndFunc
So in etwa hab ich mir das vorgestellt. Wie mache ich das am Besten!?
hast du ein 2d array, so musst du auch wenigstens 2 parameter angeben, um das ganze sinnvoll zu gestalten. ist der 2te wert wie in deinem code immer 1, so macht es keinen sinn mit einem 2d array zu arbeiten.
lolkop is offline  
Thanks
1 User
Old 12/02/2011, 14:20   #3


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Stimmt. Okay... Danke ^^
Whoknowsit is offline  
Old 12/02/2011, 15:41   #4
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
ansonsten fallen mir für dein löschen problem spontan 2 mögliche wege ein.

1. der saubere weg
beim auffinden des elementes in der liste, werden alle folge elemente ein
element nach vorne verschoben, und das array als $array[alt-1][2] definiert.

2. der schnelle weg
beim auffinden des elementes wird $array[element][0] auf einen vorher definiereten "verfügbarkeits wert" (zb -1) gesetzt.
hier würde beim einfügen eines elementes das array nach stellen durchsucht werden, welche diesen wert haben, da diese frei verfügbar sind.


der saubere weg hat den vorteil, das man keinen platz verschwendet, bei sehr großen array allerdings sehr viel aufwand hat. stell dir vor du hast ein 100.000 elementiges array und willst das erste element löschen. hierfür müsste alle 99.999 folge-elemente einen nach vorne verschoben werden.

beim schnellen weg wird der inhalt einfach auf verfügbar gesetzt und das problem ist gelöst. nachteil ist, das frei verfügbare arrayplätze leider auch speicher in anspruch nehmen. hinzu kommt, das beim einfügen eines elementes, vorher das array durchlaufen werden muss, um eventuell vorhandene freie plätze zu finden.
lolkop is offline  
Thanks
1 User
Old 12/02/2011, 16:05   #5


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
Danke Ich frage mich, was ich mir bei meinem ersten Versuch gedacht habe....

Code:
Func addToArr($param)
	If _ArrayBinarySearch($myArray, $param) < 1 Then
		_ArrayAdd($myArray, $param)
	Else
		_ArrayDelete($myArray, $param)
	EndIf
EndFunc
Warum leicht machen, wenn's auch schwer geht... ^^

EDIT:

Selbstkorrektur...

Code:
Func addToArr($param)
	If _ArrayBinarySearch($myArray, $param) < 1 Then
		_ArrayAdd($myArray, $param)
	Else
		For $n = 0 To UBound($myArray) -1
			$index = _ArraySearch($myArray, $param, 0)
			If @error Then
			Else
				_ArrayDelete($myArray, $index)
			EndIf
		Next
	EndIf
EndFunc
Whoknowsit is offline  
Reply


Similar Threads Similar Threads
Uncharted 3: Arbeiten die Entwickler noch an einem anderen Projekt?
08/07/2011 - User Submitted News - 0 Replies
Im Lebenslauf von Matt Mullins, einem mehrfachen Weltmeister in Martial Arts und Träger des Schwarzen Gürtels, findet sich ein interessanter Eintrag: Mullins, der bereits für Uncharted und Uncharted 3 für Motion Capturing-Aufnahmen von Naughty Dog gebucht wurde, nennt ein weiteres Projekt von Naughty Dog in seiner Referenzliste: Bei "Thing 1" handelt es sich jedoch um keinen offiziellen Titel oder um ein bislang angekündigtes Spiel des Studios, das momentan an Uncharted 3 arbeitet. ...
Array
06/18/2011 - AutoIt - 0 Replies
Array Fehler Ich habe hier mal wieder einen Fehler den ich nicht beheben kann #include "WebTcp.au3" #include <Array.au3> #Include <File.au3> TCPStartup() _AutoITObject_Startup()
2D Array hilfe ;)
10/22/2010 - AutoIt - 2 Replies
Hallo, ich arbeite mittlerweie schon seht viel mit autoit. Nun wollte ich ein Programm mit einer listview schreiben, wobei es die Daten aus einem txt Dokument entnimmt. Das txt Dokument sieht so aus: 1,2,3 4,5,6
[C#] Array auswerten
10/06/2010 - .NET Languages - 3 Replies
Bitte ab Edit lesen !! Hey, da ich gerade fleißig am C# lernen bin, dachte ich mir mal versuch ich mich mal an einem recht einfachem Programm. Nun, das Programm soll mir eine Datei einlesen und nach einer Eingabe prüfen ob der Inhalt in der Datei vorhanden is und dann halt sagen Ja oder Nein. Leider erklärt mein Buch wie ich Arrays erstelle, aber nich wie man sie auswerten kann. Ich bin wenigstens schon so Weit das ich weiß das ich am besten mit "ReadAllLines" arbeiten sollte. Diese...
Wir Arbeiten an einem PServer
10/08/2008 - Metin2 Private Server - 18 Replies
So hallo erstmal! Also ich und mein Team (unter dem namen Project X) Arbeiten an einem .us Privat Server. Ich werde nichts versprechen wann und ob der Server überhaupt on geht. Das heißt nicht das wir das zu 100% hinbekommen aber es besteht eine Chance. Also Bitte macht unsere Seite nicht schlecht nur weil ihr es nicht glaubt. Ich habe keinen Grund euch in irgendwelcher weise zu Verarschen(siehe meinen Postzählen), denn ich bin ein ehrlicher User mit erfahrung, das können mehrere...



All times are GMT +1. The time now is 08:41.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.