le 09-30-2014 07:12 AM
Salut à tous,
Si quelqu'un de NI peut donner son avis :
> en regardant un post sur le forum, je me demande s'il n'y a pas un bug dans la fonction LabVIEW "excel_insert_table" pour les DBL
le code fonctionne avec le séparateur décimal ".",
mais lorsque l'OS + LabVIEW + Excel ont le séparateur "," comme souvent en France, il me semble qu'il y a un bug.
En effet, la fonction réalise une conversion en %.3f
de plus, la fonction vient "écrire", "lire" et "écrire" via la méthode "value2"... je ne comprends pas pourquoi, mais en plus cela provoque un problème lorsque nous écrivons le tableau DBL convertis en String (LabVIEW "excel_insert_table" pour les STRING)
Vos Avis?
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
Résolu ! Accéder à la solution.
le 09-30-2014 09:09 AM
Bonjour M Desruelle,
J'ai contacté NI, il s'agit d'un bug connu, une solution a été posté ici :
https://decibel.ni.com/content/docs/DOC-25387?decorator=print
Cordialement
le 10-01-2014 02:17 AM
Merci pour votre retour
Je ne connaissais pas le bug, dommage de n’avoir pas eu de réponse dessus avant…
Par contre le code de NI est « horrible » « étonnant », et je vous conseille d’écrire le tableau de DBL avec la fonction que j’ai donné.
En effet la fonction ActiveX pour écrire dans Excel étant un variant, il est dommage de convertir un tableau de DBL en string. Il faudrait même écrire en variant, convertir les données de LabVIEW en variant, cela permet d’écrire une structure « Mixte » (dbl, string, date, boolean,…)
@+
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
le 10-01-2014 04:47 AM
Bravo Luc.
Le problème ... et la solution "plug&play" ... la totale ! la classe !
le 10-01-2014 05:45 AM
salut, en plus je réponds à ton post sur l'utilité des variants.
http://forums.ni.com/t5/Discussions-au-sujet-de-NI/Variant-utilit%C3%A9/m-p/2965979#M15579
j'avais commencé à vouloir répondre... mais le temps...
l’utilisation de variant, permet de créer des fonctions facilement réutilisables.
pour illustrer quelques exemples :
Les API ActiveX pour communiquer avec d’autres applications, par exemple lecture – écriture de données dans Excel, ou dans une base de données
Notons que le vi « Get Data » de NI est polymorphique, il existe un vi par type de données. Alors que l’ActiveX d’Excel retourne un variant.
Pas très malin, car si les données à lire dans Excel ne sont pas toutes du même type ? string, double… Une fonction avec un variant, permet d’avoir une API facilement générique, le décodage étant réaliser par une fonction spécifique, par exemple variant en cluster ! Cela permet de « mixer » les type de données.
Un autre exempe, la création d’une fonction permettant de convertir (formater) « n’importe quoi » en une chaine de caractère, toutes les données dans la même chaîne de caractères, utilisation pour les rapports ou log d’erreur. Il n’est pas possible de coder la fonction pour String, 1D de string, DBL, cluster de … une fonction avec un variant fera le travail. Convertir le variant en un tableau de VData, et boucle sur les VData… terminé
A+
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