For Each Row…End Statement (FPScript)
Répète une série d'instructions pour toutes les lignes d'un ensemble de données.
Syntaxe
Pour chaque rangée Compteur Dans L'ensemble de données Faites
[Statements]
End
La syntaxe de l'instruction For Each Row...End se compose des éléments suivants :
Élément |
Description |
---|---|
Compteur |
Variable qui est utilisée comme compteur de boucle. Il n'est pas nécessaire de déclarer le compteur de boucle avec Dim. |
Ensemble de données |
L'ensemble de données dont les valeurs doivent être comptées. L'ensemble de données ne peut pas être une valeur scalaire. |
Déclarations |
Une ou plusieurs instructions qui sont exécutées pour chaque valeur du jeu de données. |
Remarques
Le bloc For Each Row est exécuté s'il y a au moins une valeur dans Données. Dans ce cas, le programme exécute toutes les instructions de la boucle avec Counter égal à zéro. La boucle est répétée pour toutes les valeurs de Data Set, où Counter adopte les valeurs de zéro jusqu'au nombre de valeurs moins un. Le programme quitte alors la boucle et poursuit l'exécution avec l'instruction qui suit l'instruction End.
Si vous souhaitez itérer toutes les valeurs d'une matrice de données ou d'une série de signaux, vous devez intégrer la boucle For Each Row...End dans une boucle For Each Column...End qui compte les colonnes. Utilisez un nom de variable unique comme compteur.
Vous pouvez modifier la valeur de Counter à l'intérieur d'une boucle, mais cela rend la compréhension et les tests du code plus difficiles.
Lecompteur est souvent utilisé dans la boucle pour indexer une valeur du Data Set.
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 pour l'isolation d'événements en conjonction avec l'opérateur Opérateur d'indexation. For Each Value...End est la boucle FPScript la plus rapide.
Disponible dans
FlexPro View, Basic, Professional, Developer Suite
Exemple
L'exemple suivant définit toutes les valeurs d'un signal supérieur à 5.0 à la valeur 5.0 :
Arguments Signal
Pour chaque rangée i dans SignalDo
Si Signal.Y >= 5 Alors
Signal.Y = 5
End
End
Signal
En utilisant l'isolation des événements, l'exemple ci-dessus peut être écrit beaucoup plus facilement et efficacement :
Arguments Signal
Signal.Y[ValeursAu-dessusDuNiveau(Signal, 5)] = 5
Signal
Même ce code peut être encore simplifié, puisqu'il existe une fonction Clip intégrée qui effectue l'opération souhaitée :
Arguments Signal
Clip(Signal, , 5)
Voir aussi
For Each Column...End Statement
For Each Element...End Statement