For Each Row…End Statement (FPScript)

09.03.2021

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

For Each Value...End Statement

Déclaration For...End

While...End Statement

Déclaration Do...While

Partager l’article ou envoyer par mail :

Vous serez probablement intéressé par les articles suivants :