le 03-10-2015 06:26 AM
Bonjour à tous,
Oui, en effet, il y a "révélation"
Mais cette révélation n'est pas le variant en lui même, ni les fonctions OpenG.
La révélation est la sortie "type string" de la fonction "variant to flattened sting" ... qui donne accès à la totalité du contenu du "descripteur de type" .
Alors là ... je dis oui ... variant + descripteur = téléportation !
Parce que je peux facilement, en sortie de variant, retrouver le type complet de la donnée (ou des) qu'il contient (cela a toujours été ma grande interrogation)
Et l'utilisation de ce descripteur est la base de toutes les fonctions "variant-OpenG".
Pour ma défense :
J'ai fait une recherche sur ce forum (francophone) avec le mot "descripteur" ... Ce sujet (celui-ci) est le seul ou ce terme "descripteur" est évoqué.
Depuis le temps que l'on discute du variant, je suis étonné que personne (à part Eric) ne soit venu "me mettre à la masse" en me parlant de ce descripteur de type.
Je suis bien content d'avoir trouvé le maillon manquant !
Effectivement, cela change complètement mon regard sur le variant.
Bonne journée à tous,
le 03-10-2015 12:29 PM
ouadji a écrit :
Depuis le temps que l'on discute du variant, je suis étonné que personne (à part Eric) ne soit venu "me mettre à la masse" en me parlant de ce descripteur de type.
Et pourtant ce descripteur est utilisé dans l'une de nos librairies internes à laquelle la plupart de mes projets font recours. Argghh...
le 03-10-2015 12:36 PM
ouadji a écrit :
Depuis le temps que l'on discute du variant, je suis étonné que personne (à part Eric) ne soit venu "me mettre à la masse" en me parlant de ce descripteur de type.
Pourtant il est dans le dans le post suivant Excel et les variants
et je t'avais noté >> je réponds à ton post sur l'utilité des variants
Je ne parle pas du mot "descripteur" mais entre le texte et l'image...
non?
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
03-10-2015 02:35 PM - modifié 03-10-2015 02:36 PM
Je ne parle pas du mot "descripteur" mais entre le texte et l'image...non?
bein ... heu ... maintenant que le franc est "tombé", oui ...
mais sur le coup, non.
La compréhension tient parfois à peu de chose ... un mot, une phrase.
Le franc est tombé quand j'ai ouvert cette fonction OpenG cablée sur le sélecteur de ta structure case,
et là, j'ai vu cette fonction "variant to flattened string" .... et surtout sa sortie "type string".
c'est la que j'ai vu que cette sortie donne ce fameux "descripteur de type" ... clic sur l'aide ... et bingo .... détails complets sur les données qui composent un descripteur de type.
En fait, cela fait un an que je me demande à quoi peut bien servir un variant, puisqu'il faut connaître le type contenu pour en extraire la donnée.
La réponse était "là", juste sous mes yeux, dans la palette Variant.
La clef de toute cette histoire est la sortie "type string" de la fonction "variant to flattened string".
La fonction OpenG que tu utilises "Get TDEnum from Data", te donnes uniquement le type de niveau 1 ... array, cluster ...
Mais en décodant le descripteur tu peux connaître la totalité du type ... pas uniquement "array" ... mais "array 2D de booléen". (ou tout ce que tu veux, même les types complexes)
Maintenant que j'ai compris, je veux bien utiliser les variants (si j'en ai besoin)
En effet, les variants sont là pour répondre à un besoin précis ... faire du traitement sur des types différents, multiples.
Et c'est bien pour ça que je n'ai (quasi) jamais utilisé de variant ... je n'ai jamais eu besoin de traiter des données de types différents par un même VI.
De plus, a chaque fois que je tombais sur du code avec des variants, je voyais ces fonctions OpenG.
Mais jamais je n'ai vu un code qui faisait ça "en manuel", en manipulant directement le descripteur de type.
Oui ... j'aurais du ouvrir et analyser toutes les fonction OpenG ... je serais "tombé dessus" moi-même ... ok.
03-11-2015 01:21 AM - modifié 03-11-2015 01:25 AM
Je ne voudrais pas démarrer un nouveau débat mais les variants sont très pratiques même sans recourir au descripteur de type.
Par exemple pour transmettre des données de types différents par une même queue comme cela est décrit ici ou encore ici.
Format donnée à transmettre = cluster contenant :
Avec un (strict) typed def pour chaque type de données, cela est très simple et utile. Un incontournable pour mes projets.
le 03-11-2015 02:44 AM
ouadji a écrit :
décodant le descripteur tu peux connaître la totalité du type ... pas uniquement "array" ... mais "array 2D de booléen". (ou tout ce que tu veux, même les types complexes)
il existe une note d'application de NI qui décrit cela. J'ai cherché en quelques minutes mais je n'ai pas retrouvé. Il faut dire que j'ai lu cette note (pour la dernière fois) il y a très longtemps (2005)... est-elle toujours là?
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 03-11-2015 03:20 AM
En vrai connaître le type du variant ne sert pas si souvent que ça... Et le descripteur n'est pas utile puisque 2 fonctions (une dans vi.lib et une dans OpenG) s'occupent de tout en extraire 🙂 La vraie force des variants ce sont leurs attributs 😄
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 03-11-2015 05:20 AM
Eric.M a écrit :
En vrai connaître le type du variant ne sert pas si souvent que ça... Et le descripteur n'est pas utile puisque 2 fonctions (une dans vi.lib et une dans OpenG) s'occupent de tout en extraire 🙂 La vraie force des variants ce sont leurs attributs 😄
Salut
Très bonne remarque, même si personnellement je suis plus nuancé. (Pas forcement 50 nuances de Variant).
Je nuance donc la phrase une des forces des variants est également les attributs.
Car personnellement j'utilise les attributs des variants pour ajouter des données (possibilité de filtrage rapide d'information mais que je n'utilise pas) mais par contre dans beaucoup de fonction et de toolkit j'ai besoin de coder "N'importe quoi vers" et le type est indispensable. (par exemple j'ai une fonction VData vers base de données, VData vers chaîne de caractères,...).
Je me permets donc de nuancer via mon utilisation personnelle.
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 03-11-2015 05:21 AM
Eric.M a écrit :
le descripteur n'est pas utile puisque 2 fonctions (une dans vi.lib et une dans OpenG) s'occupent de tout en extraire
Re, tu penses à quoi ? tout en extraire? 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
le 03-11-2015 05:34 AM
Moi difficile parlé francé.
Les VIs extraient toutes les infos nécessaires du descripteur.
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.