Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Limiter le nombre de ligne d'un tableau

Bonjour,

 

J'ai créé un tableau que j'affiche sur ma face avant à l'aide de différentes valeurs récupérées au cours d'une acquisition. Mon soucis est que l'utilisateur peut rentrer un nombre incalculable de valeurs (et donc un grand nombre de ligne) et pour éviter que l'acquisition dure longtemps (l'utilisateur doit en effet renseigner une tempo pour synchroniser les valeurs), je souhaiterais pouvoir limiter le nombre de ligne et éviter ainsi que le programme ne s’exécute indéfiniment.

Pour ce faire, j'utilise la fonction construire un tableau pour rassembler mes valeurs, une transposition et j'avais dans l'idée d'afficher la taille du tableau et d'utiliser une condition tel que si la taille du tableau est supérieur à un certain nombre de ligne, faire ceci, sinon, faire cela mais j'ai un conflit de type et je ne vois pas comment faire autrement à ce jour. Quelqu'un a-t-il une idée ?

0 Compliments
Message 1 sur 13
4 988 Visites

Salut,

je pense que tu dois gérer la taille dynamiquement dans ton code, je n'ai vu aucune propriété qui permette de limiter la taille d'un tableau!!
D'autres ont peut-être une solution??!!??

0 Compliments
Message 2 sur 13
4 980 Visites

Comment l'utilisateur entre-t-il les lignes dans le tableau, manuellement? Si c'est le cas tu peux limiter la partie visible d'un tableau, ainsi l'utilisateur ne pourra éditer que le nombre de lignes visible.

 

Ben64

Limiter Tableau.png

Message 3 sur 13
4 959 Visites

Ce sont les appareils de mesure qui envoient les données dans une boucle for, que je récupère ensuite dans un tableau... Quelle est la propriété utilisée pour pouvoir limiter le nombres de lignes sur le noeud ?

0 Compliments
Message 4 sur 13
4 925 Visites

je viens d'essayer la proposition de Ben64, mais en fait, ça ne limite pas la taille du tableau, ça limite juste ce qu'on peut en voir.
Je persiste a dire qu'il faut le faire de manière dynamique dans ton vi.

0 Compliments
Message 5 sur 13
4 917 Visites

@PhilB58 wrote:

je viens d'essayer la proposition de Ben64, mais en fait, ça ne limite pas la taille du tableau, ça limite juste ce qu'on peut en voir.
Je persiste a dire qu'il faut le faire de manière dynamique dans ton vi.


C'est pourquoi je demandais si l'utilisateur entrait les valeurs manuellement, si c'est le cas il ne peut pas entrer plus de valeurs que ce qui est visible. Idéalement c'est de forcer l'utilisateur à utiliser une plage prédéfinie de valeurs. Si ce n'est pas possible alors il faudra le faire de façon dynamique.

 

Ben64

0 Compliments
Message 6 sur 13
4 905 Visites

Quelque chose dans ce genre ?

 

Azraael Limitation.png

CLAMaxime -- Kudos are a great way to say thank you
Message 7 sur 13
4 900 Visites

oui, ça devrait fonctionner, mais l'idéal dans ton cas serait d'arrêter la boucle avec l'indice de comptage de la boucle, en comparant avec la taille initiale du tableau.
Puis je préfère remplir le tableau dans la boucle et finalement le retourner, ça réduit le nombre d'opérations dans la boucle qui sont exécutées à chaque itération et donc sont énergivores.
Un petit dessin vaut mieux qu'un long discours 😉 (ici, je génère des valeurs de manière aléatoire, c'est juste pour faire du remplissage) Smiley très heureux

 

EDIT: pour Ben, oui, ta proposition était excellente dans le cas d'un remplissage à la main, je te fais un kudo tient, parce qu'on le vaut bien Smiley très heureux

Message 8 sur 13
4 884 Visites

@Azraael  a écrit :

 Mon soucis est que l'utilisateur peut rentrer un nombre incalculable de valeurs

 


En fait le problème vient de là, il faut limiter dans l'interface usager le nombre de valeurs que l'utilisateur peut entrer.

 

J'ai testé le code de Maxime et il est très performant. Si on veut faire une moyenne des échantillons c'est une bonne méthode mais par contre les données ne sont plus ordonnées. Pour avoir les N dernières données acquisitionnées dans l'ordre il suffit de faire une rotation de -1 et de remplacer l'élément du tableau à l'indice N-1 (on y perd un peu en performance).

 

Ben64

0 Compliments
Message 9 sur 13
4 863 Visites

Décidément, je ne suis pas très réveillé en ce moment, je viens de réaliser que j'avais répondu à Maxime Smiley très heureux

 

Par contre Azraael dit:

"Mon soucis est que l'utilisateur peut rentrer un nombre incalculable de valeurs"

et
"Ce sont les appareils de mesure qui envoient les données dans une boucle for, que je récupère ensuite dans un tableau"

 

On a donc les deux cas de figure, lequel est à privilégier pour répondre???

0 Compliments
Message 10 sur 13
4 858 Visites