Von einem Type auf andere Types zugreifen ?

Previous topic - Next topic

Quentin

fein, aber wirst du so nicht immer wert[0] ausgeben? müsstest halt noch ID innerhalb der Schleife hochzählen.

Außerdem musst du ja nicht zwangsläufig FOREACH nehmen. Wenn du den Index unbedingt brauchst, nimm halt eine "normale" FOR-NEXT-Schleife. Ich bin mir nicht sicher, wieviel Geschwindigkeitsvorteil FOREACH gegenüber FOR hat, wenn man solche Konstrukte mit Hilfsvariablen oder Zählern hat. Könnte man mal probieren :)

Trabant 500

Ups, sorry. Das hatte ich in meinem Pseudocode vergessen, aber mir ist natürlich klar das man die ID hochzählen muss. Hab den Code soeben berichtigt. ;)

Eine For-Next-Schleife würde nur dann Sinn machen, wenn man die Anzahl der Einträge kennt, was allerdings nicht immer der Fall ist. Ob die schneller wäre als eine FOREACH-Schleife weiß ich allerdings auch nicht. So viel dürfte das aber nicht ausmachen.
IF was <> passt
   was = passt
ENDIF

Quentin

FOREACH ist schon um einiges schneller als FOR, weil es intern nur einen Zeiger auf das aktuelle Element setzt. Der Geschwindigkeitsvorteil dürfte sich vor allem bei komplexeren TYPEs bemerkbar machen.

Die Anzahl der Einträge ermittelt man ganz einfach mit LEN(array[]) für eindimensionale Arrays bzw. mit BOUNDS für mehrdimensonale. Das kann man vor der eigentlichen Schleife erledigen. Somit verstehe ich dein Problem immer noch nicht so ganz. :)

Schranz0r

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

Trabant 500

@Quentin
Ein Problem gibt es nicht und es ist auch kein Problem selber abzufragen welcher Eintrag gerade aktuell ist, aber es hätte ja sein können das es dafür einen bestimmten Befehl gibt, den ich einfach noch nicht gefunden habe. ;)
IF was <> passt
   was = passt
ENDIF

Kitty Hello

Genau wie Du's gemacht hast:
LOCAL i% = -1
FOREACH n in NN[]
   INC i
   ....
NEXT

Trabant 500

#21
Dann hab ich es ja richtig gemacht.   ;)
IF was <> passt
   was = passt
ENDIF

Schranz0r

Viele wege führen nach Rom ;)
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

Trabant 500

Recht haste Schranz0r...auch wenn ich gar nicht nach Rom, sondern nur die Types verstehen wollte.  :D
Aber das habe ich ja nun, dank Eurer Hilfe geschafft.  ;)  :nw:
IF was <> passt
   was = passt
ENDIF

Schranz0r

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