|
You last visited: Today at 04:28
Advertisement
Frage wegen Arrays
Discussion on Frage wegen Arrays within the AutoIt forum part of the Coders Den category.
10/02/2011, 15:59
|
#1
|
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
|
Frage wegen Arrays
Hallo Leute,
ich hab mal eine Frage bezüglich Arrays in AutoIt. Also ich erklär mal die Situation. Angenommen ich hab einen 2D Array. In der ersten Spalte stehen Zahlen in der zweiten Spaltte stehen Wörter mit Zahen. Das sieht so aus:
1 Hallo1
32 Trololol
4234 Hallo1
64 shdjsd
5654 hdajshdasd
6757 Hallo1
Also, ich möchte dann nun das in diesen Array nachgesucht wird ob sich in der Rechte Spalte das Wort Hallo1 befindet. Wenn er das Wort Hallo1 gefunden hat soll er die gegebenen Zeile auf der linken Seite finden. Dann sollte er die Werte speichern die alle zutreffen, am besten in einen Array. Also bei diesen Beispiel sollte er insgesamt folgende Zahlen in einer Variable speichern:
1, 4234, 6757
Diese Zahlen haben alle in der gegenüberliegenden Spalte den Namen Hallo1.
Hoffe ihr könnt mir helfen, hab da nicht wirklich was bei google gefunden was mir da hier weiterhilft.
mfg Cyber
|
|
|
10/02/2011, 16:42
|
#2
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Dafür bietet sich eine For-Schleife an. Wie viele Durchgänge gemacht werden sollen kannst du einfach anhand der Größe des Arrays mit Hilfe von UBound() angeben. In AutoIt kannst du eine Zeichenkette einfach mit "=" bzw. "==" vergleichen. "=" → Case Insensitivity, "==" → Case Sensitivity
Dem 2. Array, in dem die Werte gespeichert werden sollen, gibst du entweder die selbe Größe des ersten Arrays, oder du benutzt "ReDim".
|
|
|
10/02/2011, 16:51
|
#3
|
elite*gold: 0
Join Date: Oct 2010
Posts: 51
Received Thanks: 12
|
Code:
#include <Array.au3>
$Fund = ""
Dim $Array[6][2]
$Array[0][0] = 1
$Array[0][1] = "Hallo1"
$Array[1][0] = 32
$Array[1][1] = "Trololo1"
$Array[2][0] = 4234
$Array[2][1] = "Hallo1"
$Array[3][0] = 64
$Array[3][1] = "shdjsd"
$Array[4][0] = 5654
$Array[4][1] = "hdajshdasd"
$Array[5][0] = 6757
$Array[5][1] = "Hallo1"
For $i = 0 to UBound($Array) - 1
MsgBox(4096, "", $Array[$i][1])
If $Array[$i][1] = "Hallo1" Then
MsgBox(4096, "Treffer!", $Array[$i][0])
$Fund = $Fund & $Array[$i][0] & @CRLF
EndIf
Next
MsgBox(4096, "", $Fund)
Hoffe das ist verständlich
€dit: Da war jemand schneller 
in meinem speichert er es halt nicht in einem Array, ich denke aber, das ist nicht so schwer umzuschreiben
|
|
|
10/02/2011, 22:00
|
#4
|
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
|
Boah ich weiß garnicht wie sehr ich euch danken soll. Echt, desswegen liebe ich Epvp. So schneller Support und so eine freundlichkeit *__* Ich danke euch, ihr habt mir sowas von geholfen! Danke! Danke! Danke!
Ist zwar für so ein Script übertrieben aber ich hatte die ganze zeit son Denkfehler.
EDIT: Hab noch ein kleines Problem. Ich möchte nun die Zahlen in einen Array speichern. Der soll aber nur 1D sein also sollte demnach so aussehen:
1, 4234, 6757
EDIT2: könnte man das so machen dass er auch das selbe Verfahren macht wenn statt "Hallo1" auch nur "Hall" steht. So dass er auch nur einen Teil braucht um das richtige zu finden.
|
|
|
10/02/2011, 23:48
|
#5
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
so?
PHP Code:
#include <Array.au3>
Dim $array[6][2] = [[1, "Hallo1"],[32, "Trololol"], [4234, "Hallo1"], [64, "shdjsd"], [5654, "hdajshdasd"], [6757, "Hallo1"]] Dim $funde[1] = [""]
$wort = InputBox("","Das zu suchende Wort eingeben", "Hallo1")
For $i=0 To UBound($array)-1 StringReplace($array[$i][1],$wort,$array[$i][1]) if @extended then $funde[0] &= $array[$i][0] & ", " Next
_ArrayDisplay($funde, "Fund")
|
|
|
10/03/2011, 00:54
|
#6
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Schau dir mal die Hilfe zu StringInStr() an.
Zusammen mit dem, was ich im 2. Beitrag geschrieben habe, kommt das dabei heraus:
PHP Code:
#include <Array.au3>
Dim $Array[6][2] = [[1, "123Hallo1"], [32, "Trololo1"], _
[4234, "hrshalloaniosk"], [64, "shdjsd"], _
[5654, "hdajshdasd"], [6757, "HalloollaH"]]
Dim $ResultArray[1][2] = [[0, 0]]
$Search = InputBox("", "Suche nach...", "Hallo")
For $i = 0 to UBound($Array) - 1
If StringInStr($Array[$i][1], $Search) Then
$Count = UBound($ResultArray)
$ResultArray[0][0] = $Count
ReDim $ResultArray[$Count + 1][2]
$ResultArray[$Count][0] = $Array[$i][0]
$ResultArray[$Count][1] = $Array[$i][1]
EndIf
Next
_ArrayDisplay($ResultArray, "Funde")
Quote:
$ResultArray[0][0]: Anzahl der gefundenen Ergebnisse
$ResultArray[n][0]: Zahl des nten Ergebnisses
$ResultArray[n][1]: Vollständiges Wort des nten Ergebnisses
|
|
|
|
Similar Threads
|
WICHTIGE FRAGE WEGEN wegen Conectet Refused
08/25/2011 - Metin2 Private Server - 1 Replies
Hallo ich hab ein Server gemacht und wir haben viel gemacht aber jetzt kommt der Conectet Refused fehler und wir wissen woher der kommt, also wir haben die yang raten eingestellt und jedes mal ist danach der Server gecrasht !
Also ging das wen wir nen neuen server erstellen das wen wir von da aus die Yang sacher rüber kopieren das der Server wieder klappt ?
|
frage wegen cf eu wegen denn keys
08/20/2011 - CrossFire - 4 Replies
also ich habe ein key akteviert aber weis jetzt nich wie das ableuft ist es ne verlosung wer in cf eu beta mitspielen darf oder darf jeder spielen der sein key akteviert hat
|
All times are GMT +1. The time now is 04:29.
|
|