Startseite › Foren › Deutsches LiveCode-Forum › array füllen
Schlagwörter: Array
- Dieses Thema hat 9 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 2 Jahren, 9 Monaten von Torsten.
-
AutorBeiträge
-
-
März 13, 2020 um 20:10 Uhr #19575
Hallo,
dann mal gleich die nächste Frage. Muss ich in LC jedes Element einzeln in einen array schieben, oder gibt es so was in der Art put 1,2 into a[]
on mouseUp pButtonNumber put 1,2 into a answer a[2] put 1 into a[1] put 2 into a[2] put a[2] end mouseUp
LC meckert zwar nicht, bringt beim answer aber nichts raus. Das put a[2] funktioniert.
Grüße
pit -
März 13, 2020 um 20:14 Uhr #19577
Yo, LC meckert nicht, obwohl Du versuchst einen Key aus einer Variablen anzuzeigen,
die gar kein Array ist. Ist doch ein netter Zug! 🙂Sowas geht mit einem REPEAT Loop, vielleicht nicht gerade in diesem Beispiel,
aber im Prinzip schon. -
März 13, 2020 um 20:31 Uhr #19581
Hallo Klaus,
klar, wenn ich einen array nur mit NUllen füllen will, kann ich das mit einer Schleife machen, aber deshalb habe ich ja das Beispiel mit unterschiedlichen Werten gebracht.
Grüße
pit -
März 13, 2020 um 20:36 Uhr #19582
Hi Pit
es kommt auf die Art der Daten an, die ins Array sollen.
Nicht alles kann man automatisieren mit einem Loop.Aber Dein Beispiel mit einem Loop geht so, ergibt herzlich wenig Sinn,
aber das Prinzip ist klar:
…put "1,2" into tListe ## Ich arbeite immer mit REPEAT FOR EACH, soweit möglich! ## Das ist rasend schnell, man muss aber seinen eingeen Zähler verwalten put 1 into Counter put EMPTY into tArray repeat for each item tItem in tListe put tItem into tArray[tCounter] add 1 to tCounter end repeat ...
Egal wie viel ITEMS (oder lines oder was auch immer) Deine Liste haben sollte,
das macht ein Array daraus.Gruß
Klaus
-
März 13, 2020 um 23:11 Uhr #19586
Hi Klaus, das bringt mich auf die Idee einer Funktion für die automatische Array-Befüllung:
Hier ein Beispiel, das man einfach in ein Button-Script einfügt:
on mouseUp pMouseButton put createArrayFromList("1,2,3,4") into tArray answer the keys of tArray end mouseUp function createArrayFromList repeat for each item tItem in the params add 1 to tCounter put tItem into tArray[tCounter] end repeat return tArray end createArrayFromList
🙂
-
März 13, 2020 um 23:23 Uhr #19587
Oje, da war ich wieder etwas zu schnell und habe nur die Keys gecheckt. Mache schnell eine neue Version, Sekunde…
Ah, es geht noch eleganter 🙂
Um das Funktonieren zu sehen, muss man einen neuen Stack mit einem Button und einem Tree-Widget erstellen. Un den Button filgendes Skript einfügen:
on mouseUp createArrayFromList "a","b","3","4" put the result into tArray set the arrayData of widget "Tree" to tArray end mouseUp command createArrayFromList repeat with tParam = 1 to the paramCount put param(tParam) into tArray[tParam] end repeat return tArray end createArrayFromList
-
März 13, 2020 um 23:41 Uhr #19588
Und man kann es auch als Funktion bauen:
on mouseUp put CreateArrayFromList("Hallo welt","b","3","4",6,7,8,9,0) into tArray set the arrayData of widget "Tree" to tArray end mouseUp function CreateArrayFromList repeat with tParam = 1 to the paramCount put param(tParam) into tArray[tParam] end repeat return tArray end CreateArrayFromList
Oder ganz spartanisch:
set the arrayData of widget "Tree" to CreateArrayFromList("Moin!","b","3","4",6,7,8,9,0)
Ach, Livecode ist einfach herrlich 🙂
-
-
März 14, 2020 um 01:04 Uhr #19589
Hallo Klaus,Torsten,
vielen Dank für eure Lösungen, genau sowas habe ich gesucht. Ich habe einige 16 elementige Arrays zu füllen, und bisher habe ich dafür immer 16 Zeilen/Array gebraucht, weil ich jedes Element einzeln in den Array geschoben habe. Das bläht den Code extrem auf. Mit einer Funktion ist es jetzt perfekt.
Grüße
pit-
März 14, 2020 um 10:19 Uhr #19590
Hi Pit,
freut mich!
Schönes Wochenende 🙂
-
-
Dezember 19, 2021 um 12:56 Uhr #40272
Hi Klaus,
ich hab die Befürchtung, dass das Problem von Pit mit einem einfachen split viel einfacher zu lösen wäre, oder was denkst du? 😉
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.