Sauter la navigation

Documentation FlexPro 2025

For Each Row...End

Répète une série d'instructions pour toutes les lignes d'un ensemble de données.

Syntaxe

For Each Row Compteur In Données Do

  [Instructions]

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.

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.

Instructions

Une ou plusieurs instructions qui sont exécutées pour chaque valeur 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 Compteur égal à zéro. La boucle est répétée pour toutes les valeurs de Données, lecompteur prenant 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. Pour chaque boucle, utilisez un nom de variable unique comme Counter.

Vous pouvez modifier la valeur de Compteur à l'intérieur d'une boucle, mais cela rend la compréhension et les tests du code plus difficiles.

Le compteur 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 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 définit toutes les valeurs d'un signal supérieur à 5.0 à la valeur 5.0 :

Arguments Signal

For Each Row i In Signal Do

    If Signal.Y[i] >= 5 Then

        Signal.Y[i] = 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[ValuesAboveLevel(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

Instruction For Each Column...End

Instruction For Each Element...End

Instruction For Each Value...End

Instruction For...End

Instruction While...End

Instruction Do...While

Documentation FlexPro 2025

For Each Row...End

Répète une série d'instructions pour toutes les lignes d'un ensemble de données.

Syntaxe

For Each Row Compteur In Données Do

  [Instructions]

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.

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.

Instructions

Une ou plusieurs instructions qui sont exécutées pour chaque valeur 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 Compteur égal à zéro. La boucle est répétée pour toutes les valeurs de Données, lecompteur prenant 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. Pour chaque boucle, utilisez un nom de variable unique comme Counter.

Vous pouvez modifier la valeur de Compteur à l'intérieur d'une boucle, mais cela rend la compréhension et les tests du code plus difficiles.

Le compteur 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 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 définit toutes les valeurs d'un signal supérieur à 5.0 à la valeur 5.0 :

Arguments Signal

For Each Row i In Signal Do

    If Signal.Y[i] >= 5 Then

        Signal.Y[i] = 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[ValuesAboveLevel(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

Instruction For Each Column...End

Instruction For Each Element...End

Instruction For Each Value...End

Instruction For...End

Instruction While...End

Instruction Do...While