delete / foreach

Previous topic - Next topic

Kosta

Hallo,

habe mein aktuelles Projekt ein bisschen aufgeräumt ...nun funzt es nicht mehr...

Habe nun das Problem identifiziert (glaube ich): Lt. Doku muss DELETE innerhalb der FOREACH Schleife aufgerufen werden.

Mein DELETE ist aber in einer Funktion ausgelagert worden, wird aber innerhalb der FOREACH Schleife aufgerufen ...

Kann man da noch was tun? oder muss ich alles zurückbasteln?
Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

mull

Geht nur wie in der Hilfe steht innerhalb der Foreach Schleife.

Nimm doch DIMDEL Feld[], Nr

Aber achte darauf das in der Scheife nicht mehr nach dem Rauswurf auf das Feld[Nr] zugegriffen wird.
AMD Phenom II x4 955 Proc. 3.2 GHZ,  4GB Ram
Windows 7 64bit Ultima
NVIDIA GeForce GTX 460
Leistungsindex 5,7

Kitty Hello

Aua! Du willst innerhalb einer Funktion was löschen?
Mach ein RETURN FALSE, und fang' das in der FOREACH Schleife ab.

Schranz0r

Japp Gernot hat recht, entweder bei der Funktion True/False returnen und das dann abfragen, oder die Funktion doch weglassen und es im "normalen Code" stehen lassen :)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kosta

danke

habe es wieder zurückgebastelt.....

...hatte die Funktion erzeugt um die Übersichtlichkeit zu erhöhen 

-> mit Return/False (Testumbau hatte zwar funktioniert) war die Lesbarkeit/Übersichtlichkeit dann doch eher schlechter als vorher

Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

Kosta

#5
irgendwie denkt mein Programm INC währe ein Feld/Variable?  oder intepretier ich hier den Fehler falsch?

oder kann ich in der foreach schleife für bonus keine anderen Feldwerte pop aendern? (Kann ich mir ja garnicht vorstellen)...aber wo hakts ?

*** Configuration: WIN32 ***
precompiling:
GPC - GLBasic Precompiler V.2008.210 - 3D, NET
"Tartarus.gbas"(179) error : wrong argument type : INC, arg no: 1
TYPE  is not declared



Auszug wo der Fehler angezeigt wird:

Hier beginnt die foreach Schleife (foreach bonus in bonuss[])
.....snipp.....
Code (glbasic) Select
// Check Colission with Bonus
IF BOXCOLL(bonus.x, bonus.y, bonus.sizex, bonus.sizey, playerx,playery, playersizex,playersizey)
SELECT bonus.typ
CASE 1
//W:
INC playerspeed,0.25
IF playerspeed>2.5 THEN playerspeed = 2.5
DELETE bonus
CASE 2
//O:
INC pop.power,1
INC pop.typ,1
IF pop.typ>4 THEN pop.typ=4
DELETE bonus
CASE 3
//G:
CASE 4
//B:
CASE 5
//L:
INC lives,1
DELETE bonus
ENDSELECT
ENDIF

...schnapp...
next   

Hier springt der Cursor beim Fehler:

INC pop.power,1
INC pop.typ,1
Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

Kitty Hello

Er kennt das Objekt "pop" nicht. Hast Du vorher LOCAL pop AS XY gemacht?
Oder wie/wo/was ist pop?

Kosta

oehmm...... nee   :whistle:  hab ich nicht gemacht  :whistle:

:bed:

ich habe ein

LOCAL shots[] AS SHOT

..und habe pop immer in der foreach schleife benutzt...

   FOREACH pop IN shots[]

:bed:

...aber wie ich im code sehe bin garnicht mehr in der foreach-pop-Schleife sondern in der foreach-bonus-Schleife

:'(
Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

Kitty Hello

Wow, ist mein Compiler gut  :coke: