ForEach:Next mit With:EndWith clever verbinden

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

ForEach:Next mit With:EndWith clever verbinden

Beitrag von STARGÅTE »

Tachchen,

ich bin ja immer noch dabei die ganzen 3.3 "Artefakte" in sauberes 4.x um zu schreiben.

Da ich in allen ForEach:Next - Schleifen auch die LinkedList um die es geht, sehr oft verwende würde ich gerne immer gleich ein With:EndWith mit dabei haben:
ForEach Element()
 With Element()
  ; Code 
 EndWith
Next
Nun finde ich das aber irgendwie zu viel und schreibe es derzeit so, was aber nicht ganz Sauber ist:
ForEach Element() : With Element()
 ; Code  
Next : EndWith
Leider darf man ja in Macros kein With zu stehen haben, sonst könnte ich mir selber 2 Schlüsselwörter definieren in denen ForEach:With und EndWith:Next zusammen gebaut sind.

Mein taum wäre dann:
MyForEach Element()
 ; Code  
MyNext
Hat einer von euch eine Idee wie ich nun diese Sache gut lösen kann ?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Beitrag von GreyEnt »

Hi Stargate,

ich hampel auch sehr viel mit LinkedLists herum. Weil ist einfach Genial.
Welche möglichkeiten sich da auftun.

Aber deine Frage hab ich nicht verstanden?
Hast Du mal ein Einfaches Beispiel?
With Element()
; Code
EndWith
Ich progge PureBasic weil Jägermeister nen dicken Kopf macht.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ich würde gerne die extreme vereinfachung (duch ForEach, und With) noch mehr vereinfachen indem ich die beiden schlüsselWörter zusammenfasse, anstatt immer beide hinereinander zu verwenden:

Code: Alles auswählen

Structure Objekt
 Sprite.l
 x.f
 y.f
 w.f
 v.f
EndStructure

Global NewList Objekt.Objekt()

;...

ForEach Objekt() : With Objekt()
 \x + Cos(\w)*\v
 \y + Sin(\w)*\v
 DisplaySprite3D(\Sprite, \x, \y)
Next : EndWith
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Die Idee finde ich auch gut. Passt aber wohl eher in die Wunschliste im
engl. Forum.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wurde auch schon längst requested, musst mal suchen. Weiß nicht, was zwischenzeitlich draus geworden ist.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten