Syntaxe
Ouvre un bloc où \field vaut <record>.field, n’importe où sur la ligne, pour écrire moins quand beaucoup de lignes touchent le même enregistrement.
WITH <record>
\<field> …
\<field>\<subfield> …
\<field>.<subfield> …
ENDWITH
END WITHS’écrit aussi : ENDWITH
Les éléments
| <record> | N’importe quelle expression d’enregistrement : une variable, fleet(i), l’élément courant d’une liste foes(). |
|---|---|
| <field> | Un champ de l’enregistrement. |
| <subfield> | Un champ d’un champ enregistrement. Écrivez la chaîne avec \ ou avec .. |
À savoir
- Le bloc se ferme par
ENDWITHouEND WITH. - L’expression de l’enregistrement est relue à chaque
\. AvecWITH fleet(i), changeridans le bloc envoie les lignes suivantes vers une autre case. - Les blocs WITH ne s’imbriquent pas. Un WITH dans un WITH est une erreur de compilation : « Nested WITH blocks are not supported ».
- Le texte des chaînes et des commentaires n’est pas touché :
"C:\games"reste un chemin. - Hors d’un WITH,
hero\fuelest refusé avec « Not a BASIC statement ». Écrivezhero.fuel. - Un seul mot après
WITHouvre un bloc d’enregistrement. Deux mots, le premier étant une famille de commandes (WITH SPRITE s), ouvrent à la place le raccourci de commandes.
Exemple
TYPE Vec x AS float y AS floatENDTYPETYPE Ship name AS string fuel AS integer pos AS VecENDTYPEs AS ShipWITH s \name = "Comet" \fuel = 80 \pos\x = 1.5 \pos.y = 2.5 Console(\name + " " + Str(\fuel) + " " + Str(\pos\x + \pos\y)) ' Comet 80 4ENDWITHDans le manuel : Enregistrements et méthodes