With : EndWith
BeschreibungWith <Ausdruck> ... EndWith
Ein With : EndWith Block ermöglicht die Reduzierung einzugebenden Codes und vereinfacht seine Lesbarkeit, wenn strukturierte Felder intensiv genutzt werden.
Er beinhaltet regulären PureBasic Code und fügt automatisch den angegebenen 'Ausdruck' vor dem Backslash '\' Zeichen, welches ein Leerzeichen oder einen Operator davor hat, ein. Dies ist eine Compiler-Direktive und funktioniert wie ein Makro: die Zeile wird zum Zeitpunkt des Kompilierens erweitert.
With : EndWith Blöcke können nicht verschachtelt werden, da dies zu nur schwer zu findenden Bugs führen kann, wenn es mehrere - mit verschiedenen Werten ersetzte - Anweisungen gibt.Beispiel:
Structure Person Name$ Age.l Size.l EndStructure Friend.Person With Friend \Name$ = "Yann" \Age = 30 \Size = 196 Debug \Size+\Size EndWithBeispiel: Komplexes Beispiel
Structure Body Weight.l Color.l Texture.l EndStructure Structure Person Name$ Age.l Body.Body[10] EndStructure Friend.Person For k = 0 To 9 With Friend\Body[k] \Weight = 50 \Color = 30 \Texture = \Color*k Debug \Texture EndWith Next