le 12-26-2020 10:19 AM
Bonjour,
Beaucoup d'exemples de VI (sur le net ou support de cours NI) montrant comment enregistrer des données sur des fichiers texte utilisent des registre à décalage dans une boucle While sur les refnums des fichiers.
Est-ce utile ? Pourquoi ?
Ci-dessous un exemple :
Merci à tous
Pierre
Résolu ! Accéder à la solution.
le 12-28-2020 02:02 AM
Avec une boucle WHILE, le registre à décalage n'apporte rien car, peu importe les conditions d'arrêt, la boucle s'exécute toujours au minimum une fois.
Cela n'est pas contre pas le cas pour une boucle FOR qui, au contraire de la boucle WHILE, peut ne jamais s'exécuter. Si la boucle n'effectue aucune itération, un tunnel transmet la valeur par défaut de la donnée.
Prenons cet exemple. Dans un cas réel, les données seraient évidemment concaténées en bloc pour être mémorisées en une seule fois. Mais cela n'est pas le sujet du jour.
Tout se passe bien... à moins de définir Nb valeurs à 0. La boucle FOR ne s'exécute alors jamais et la référence du fichier est perdue. Tel n'est pas le cas en remplaçant le tunnel par un registre à décalage.
Même si le registre à décalage n'est pas utile avec une boucle WHILE, je suppose que c'est le risque montré ci-dessus qui explique son utilisation généralisée dans les exemples.
le 12-28-2020 02:43 AM
Bonjour JB,
Merci. Ton explication est très claire.
Pas de doute, ça doit être l'explication.
Pierre
le 12-28-2020 03:01 AM
Bonjour, c'est une très bonne réponse de JB.
Je pense qu'il y a aussi l'habitude. Dans l'exemple, le cluster de l'erreur est géré par un registre à décalage. C'est une habitude de mettre un registre à décalage pour ne pas perdre l'erreur. En le mettant tout le temps, cela évite de l'oublier. Cela permet aussi d'avoir des conventions, des règles communes, des bonnes habitudes. Pas toujours indispensables, mais dans les fondamentaux des bonnes habitudes.
A+ Luc
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group