|
You last visited: Today at 00:00
Advertisement
Anzahl Arrays verwenden
Discussion on Anzahl Arrays verwenden within the AutoIt forum part of the Coders Den category.
09/24/2013, 14:21
|
#1
|
elite*gold: 20
Join Date: Jan 2010
Posts: 489
Received Thanks: 1,647
|
Anzahl Arrays verwenden
Tach zsm
und zwar möchte ich die ermittelte anzahl der vorhandenen arrays weiter verwenden um sie z.b. in ein label oder msgbox auszugeben, folgendes bsp.
Code:
......
$Label82 = GUICtrlCreateLabel("Skill: Level:", 12, 186, 76, 17)
$Label83 = GUICtrlCreateLabel("Skill: Level:", 12, 220, 76, 17)
$Label84 = GUICtrlCreateLabel("Skill: Level:", 12, 203, 76, 17)
$Label85 = GUICtrlCreateLabel("Skill: Level:", 12, 237, 76, 17)
$Label86 = GUICtrlCreateLabel("Skill: Level:", 12, 254, 76, 17)
$Label87 = GUICtrlCreateLabel("Skill: Level:", 12, 271, 76, 17)
$Label88 = GUICtrlCreateLabel("Skill: Level:", 12, 288, 76, 17)
$Label89 = GUICtrlCreateLabel("Skill: Level:", 12, 305, 76, 17)
$Label90 = GUICtrlCreateLabel("Skill: Level:", 12, 322, 76, 17)
$Label91 = GUICtrlCreateLabel("Skill: Level:", 12, 339, 76, 17)
$Label92 = GUICtrlCreateLabel("Skill: Level:", 12, 356, 76, 17)
$Label93 = GUICtrlCreateLabel("Skill: Level:", 12, 373, 76, 17)
$Label94 = GUICtrlCreateLabel("Skill: Level:", 12, 389, 76, 17)
$Label95 = GUICtrlCreateLabel("Skill: Level:", 12, 406, 76, 17)
$Label96 = GUICtrlCreateLabel("Skill: Level:", 12, 423, 76, 17)
$Label97 = GUICtrlCreateLabel("Skill: Level:", 12, 440, 76, 17)
$Label98 = GUICtrlCreateLabel("Skill: Level:", 12, 457, 76, 17)
$Label99 = GUICtrlCreateLabel("Skill: Level:", 12, 169, 76, 17)
$Label100 = GUICtrlCreateLabel("Skill: Level:", 12, 152, 76, 17)
$Label101 = GUICtrlCreateLabel("Skill: Level:", 12, 135, 76, 17)
$Label102 = GUICtrlCreateLabel("Skill: Level:", 12, 118, 76, 17)
$Label103 = GUICtrlCreateLabel("Skill: Level:", 12, 101, 76, 17)
$Label104 = GUICtrlCreateLabel("Skill: Level:", 12, 85, 76, 17)
$Label105 = GUICtrlCreateLabel("Skill: Level:", 12, 68, 76, 17)
$Label106 = GUICtrlCreateLabel("Skill: Level:", 12, 51, 76, 17)
$Label107 = GUICtrlCreateLabel("Skill: Level:", 12, 34, 76, 17)
.......
.......
$asskill1 = IniRead("test.ini","askill","id","")
$anzahl0 = StringSplit($asskill1, " ",2)
$anzahl1 = UBound($anzahl0)-1 ; 13 arrays
$anzahl1 ergibt 13 vorhandene Arrays, maximal sind 25 arrays möglich, so wie geb ich jetzt am besten die vorhandenen 13 arrays in die ersten 13 labels aus? (Wie viel arrays vorhanden sind weis man im vor herein nicht)
mfg
|
|
|
09/24/2013, 14:34
|
#2
|
elite*gold: 155
Join Date: Jul 2012
Posts: 24,491
Received Thanks: 2,568
|
Guictrlsetdata($label, anzahl0[Dein Array als Nummer]).
ich hoffe das es so richtig ist.
Bin gerade am Handy.
|
|
|
09/24/2013, 14:38
|
#3
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Du musst aber aufpassen, da die nicht alle auf der selben Stelle sein sollen sondern verschoben, die Verschiebung müsstest auch in den Array schreiben und richtig anwenden.
|
|
|
09/24/2013, 14:52
|
#4
|
elite*gold: 20
Join Date: Jan 2010
Posts: 489
Received Thanks: 1,647
|
Quote:
Originally Posted by xcyancali
Guictrlsetdata($label, anzahl0[Dein Array als Nummer]).
ich hoffe das es so richtig ist.
Bin gerade am Handy.
|
naja aber wenn ich vorher nicht weiß wie viele es sind dann geht das so ja nicht bzw durch diesen befehl fügt sich ja nur ein wert in ein label.
Wenn ich es wüsste würde es ja so aussehen
Code:
GUICtrlSetData($h_name,$aZahlen[0])
GUICtrlSetData($a_name,$aZahlen[1])
GUICtrlSetData($g_name,$aZahlen[5])
GUICtrlSetData($?_name,$aZahlen[3])
GUICtrlSetData($p_name,$aZahlen[4])
GUICtrlSetData($b_name,$aZahlen[6])
GUICtrlSetData($w_name,$aZahlen[2])
GUICtrlSetData($?_name,$aZahlen[10])
GUICtrlSetData($?_name,$aZahlen[11])
GUICtrlSetData($?_name,$aZahlen[12])
GUICtrlSetData($?_name,$aZahlen[13])
So sieht es ja eig. aus, wenn ich nicht weiß wie viele es sind:
Code:
GUICtrlSetData($h_name,$aZahlen[0])
GUICtrlSetData($a_name,$aZahlen[x])
GUICtrlSetData($g_name,$aZahlen[x])
GUICtrlSetData($?_name,$aZahlen[x])
GUICtrlSetData($p_name,$aZahlen[x])
GUICtrlSetData($b_name,$aZahlen[x])
GUICtrlSetData($w_name,$aZahlen[x])
GUICtrlSetData($?_name,$aZahlen[x])
GUICtrlSetData($?_name,$aZahlen[x])
GUICtrlSetData($?_name,$aZahlen[x])
GUICtrlSetData($?_name,$aZahlen[x])
ich weiß ja nach UBound()-1 nur das es 13 Arrays sind, nun will ich ja für x die jeweilige anzahl [0] [1] [2]-[13]
Auf Deutsch gesagt: Erstelle mir die Anzahl an GUICtrlsetdata() befehle anhand der anzahl der ausgegebenen Arrays (13)
So sieht das Array aus:
Code:
[0]|14
[1]|19
[2]|15
[3]|18
[4]|16
[5]|46
[6]|48
[7]|17
[8]|20
[9]|1106
[10]|162
[11]|230
[12]|1087
[13]|401
|
|
|
09/24/2013, 14:57
|
#5
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Ich hab dir mal schnell im Browser ein Beispiel zusammengeschrieben, ist ungetestet sollte aber funktionieren.
Code:
Global $aLabel[100]
Local $iStart = 34, $iPosDifference = 17
For $i = 0 To UBound($aLabel) - 1
$aLabel[$i] = GUICtrlCreateLabel("Skill: Level:", 12, $iStart + $i*$iPosDifference, 76, 17)
Next
|
|
|
09/24/2013, 15:17
|
#6
|
elite*gold: 20
Join Date: Jan 2010
Posts: 489
Received Thanks: 1,647
|
Quote:
Originally Posted by alpines
Ich hab dir mal schnell im Browser ein Beispiel zusammengeschrieben, ist ungetestet sollte aber funktionieren.
Code:
Global $aLabel[100]
Local $iStart = 34, $iPosDifference = 17
For $i = 0 To UBound($aLabel) - 1
$aLabel[$i] = GUICtrlCreateLabel("Skill: Level:", 12, $iStart + $i*$iPosDifference, 76, 17)
Next
|
hmm das ist jetzt eher auf die anzahl der label bezogen oder?
Die anzahl der label ist mir eig ziehmlich gleich, es stehen immer 25 label
Mir ist in erster linie die sache mit den Arrays wichtig. Villt erklär ich es mal anders.
Also ich habe ein ganzen array, der inhalt dieses arrays ist immer 1 dimensional und hat zwischen 1-25 rows.
In diesem Beispiel hat das array 13 Rows. Mit UBound()-1 bekomm ich raus das 13 rows vorhanden sind, nun will ich in die ersten 13 Labels diese 13 Rows eintragen lassen.
Code:
[0]|14
[1]|19
[2]|15
[3]|18
[4]|16
[5]|46
[6]|48
[7]|17
[8]|20
[9]|1106
[10]|162
[11]|230
[12]|1087
[13]|401
GUICtrlSetData($h_name,$aZahlen[0])
GUICtrlSetData($a_name,$aZahlen[1])
GUICtrlSetData($g_name,$aZahlen[5])
GUICtrlSetData($?_name,$aZahlen[3])
GUICtrlSetData($p_name,$aZahlen[4])
GUICtrlSetData($b_name,$aZahlen[6])
GUICtrlSetData($w_name,$aZahlen[2])
GUICtrlSetData($?_name,$aZahlen[10])
GUICtrlSetData($?_name,$aZahlen[11])
GUICtrlSetData($h_plus,$aZahlen[12])
GUICtrlSetData($a_plus,$aZahlen[13])
|
|
|
09/24/2013, 15:29
|
#7
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Dann musst du die Labels auch per Array erstellen, damit du sie besser ansteuern kannst als jeden Array einzeln. Das Script was ich dir geschrieben hab wird dir weiterhelfen.
Wenn du alle per Array erstellt hast, könnte es so aussehen:
Code:
For $i = 0 To UBound($aZahlen) - 1
GUICtrlSetData($aLabel[$i], $aZahlen[$i])
Next
|
|
|
09/24/2013, 15:30
|
#8
|
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
|
For $i = 0 To 13
$aLabel[$i] = GUICtrlCreateLabel($i, 12, $iStart + $i*$iPosDifference, 76, 17)
Next
For $i = 0 to Ubound($aLabel-1)
Guictrlsetdata($aLabel,$zahlen[$i])
next
erstellt erst ein array mit 13 labels drin
füllt die labels danach mit $zahlen.
kann auch in einem schritt erledigt werden, habs hier aber mal getrennt.
hoffe ich hab dich richtig verstanden.
|
|
|
09/24/2013, 15:48
|
#9
|
elite*gold: 20
Join Date: Jan 2010
Posts: 489
Received Thanks: 1,647
|
Quote:
Originally Posted by alpines
Dann musst du die Labels auch per Array erstellen, damit du sie besser ansteuern kannst als jeden Array einzeln. Das Script was ich dir geschrieben hab wird dir weiterhelfen.
Wenn du alle per Array erstellt hast, könnte es so aussehen:
Code:
For $i = 0 To UBound($aZahlen) - 1
GUICtrlSetData($aLabel[$i], $aZahlen[$i])
Next
|
Quote:
Originally Posted by butter123
For $i = 0 To 13
$aLabel[$i] = GUICtrlCreateLabel($i, 12, $iStart + $i*$iPosDifference, 76, 17)
Next
For $i = 0 to Ubound($aLabel-1)
Guictrlsetdata($aLabel,$zahlen[$i])
next
erstellt erst ein array mit 13 labels drin
füllt die labels danach mit $zahlen.
kann auch in einem schritt erledigt werden, habs hier aber mal getrennt.
hoffe ich hab dich richtig verstanden.
|
ok danke euch, das sieht schonmal vielversprechend aus, werds dann später mal testen
|
|
|
09/24/2013, 16:20
|
#10
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Kopiert sich den Code einfach dreist raus, obwohl ich die Lösung schon gepostet hab - so wirds gemacht.
|
|
|
 |
Similar Threads
|
[VB]Arrays und Panel
05/08/2013 - .NET Languages - 2 Replies
Hallo Mitglieder,
ich bin dabei ein kleines 2d Spiel mit Panels zu programmieren.
Die 4 Panel um die es sich handelt, heißen enemy1,enemy2,enemy3 und enemy4.
Diese 4 Panels möchte ich jetzt in ein Array rein kriegen, das enemy heißt. Ja, ich weiß das man einfach alles via Code adden kann, aber ich habe diese in der Form hinzugefügt und es muss doch wohl auch eine Möglichkeit geben diese bereits hinzugefügten Panels in das Array, mit allen Kontrollrechten, zu kopieren.
Dies...
|
_GDIPlus_BitmapDispose mit Arrays
10/26/2011 - AutoIt - 1 Replies
Hallo com,
habe folgendes Problem. Habe mehrere _GDIPlus_BitmapCloneArea Befehle.
Nun möchte ich diese in einen Array schreiben also:
Dim $Bitmap
$Bitmap = _GDIPlus_BitmapCloneArea($hImage,0,0,20,20)
$Bitmap = _GDIPlus_BitmapCloneArea($hImage,0,0,20,20)
$Bitmap = _GDIPlus_BitmapCloneArea($hImage,0,0,20,20)
$Bitmap = _GDIPlus_BitmapCloneArea($hImage,0,0,20,20)
|
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 :( !
|
All times are GMT +1. The time now is 00:00.
|
|