Répète une série d'instructions et, ce faisant, parcourt toutes les valeurs d'un ensemble de données.
Syntaxe
For Each Value Y[[, X], Z] In Données Do
[Instructions]
End
La syntaxe de l'instruction For Each Value...End se compose des éléments suivants :
Élément |
Description |
|---|---|
Y, X, Z |
Variables qui adoptent les valeurs de l'ensemble des données. Vous pouvez omettre les variables à droite. Il n'est pas nécessaire de déclarer les variables avec Dim. |
Données |
L'ensemble de données dont les valeurs doivent être prises. L'ensemble de données ne peut pas être une valeur scalaire. |
Instructions |
Une ou plusieurs instructions qui sont exécutées pour chaque valeur de Données. |
Remarques
Le bloc For Each Value est exécuté s'il y a au moins une valeur dans Données. La boucle est répétée pour toutes les valeurs de Données où X, Y et Z adoptent les valeurs de l'ensemble de données. Le programme quitte alors la boucle et poursuit l'exécution avec l'instruction qui suit l'instruction End.
Les colonnes d'un ensemble de données à deux dimensions sont parcourues l'une après l'autre. Si une variable est utilisée pour un composant qui n'est pas présent dans l'ensemble de données, elle reçoit des valeurs intégrales croissantes de 64 bits qui commencent par 0.
Si une composante traversée de Données est une grandeur, son unité est reprise dans la variable d'exécution correspondante.
Remarque : Dans la mesure du possible, vous devez éviter les boucles sur les valeurs individuelles d'un ensemble de données. FPScript vous permet de calculer des ensembles de données complets en une seule instruction. Les boucles peuvent généralement être remplacées par des fonctions d'isolation d'événements en combinaison avec l'opérateur Index. La boucle For Each Value...End est la plus rapide des boucles FPScript.
Disponible dans
FlexPro View, Basic, Professional, Developer Suite
Exemple
L'exemple suivant collecte toutes les valeurs d'un signal qui sont supérieures ou égales à 5.0 :
Arguments Signal
Dim SY, SX
For Each Value Y, X In Signal Do
If Y >= 5 Then
SY := Y
SX := X
End
End
Signal(SY, SX)
En utilisant l'isolation des événements, l'exemple ci-dessus peut être écrit beaucoup plus facilement et efficacement :
Arguments Signal
Signal[ValuesAboveLevel(Signal, 5)]
Voir aussi
Instruction For Each Column...End
Instruction For Each Row...End