Discussions au sujet de NI LabVIEW

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

Importer fichier binaire à données différentes

Bonjour à tous,

 

Je fais une nouvelle fois appel à vous et vos compétences en labview pour essayer de m'orienter vers une solution.

 

Je veux importer un fichier binaire (jusque là j'ai la solution) mais mon problème se trouve au niveau du type de données associé.

Je veux pouvoir ouvrir une définition de type composées de 4 clusters (déf_typ1) ou alors une définition de type composées de 5 éléments (déf_typ2).

Pb de données import binaire.PNG

• J'ai une première solution qui est d'appuyer sur un bouton de la face avant pour lancer l'import de déf_typ1 et un autre pour lancer l'import de déf_typ2. Mais cette solution n'est pas optimisée pour l'utilisateur car cela l'oblige à connaître la composition du fichier binaire à ouvrir.

Je veux pouvoir ouvrir le fichier sans problèmes de composition du fichier et du type de déf_typX.

 

Je vous remercie d'avance pour votre aide.

Petitou

0 Compliments
Message 1 sur 12
4 098 Visites

Salut Petitou,

 

Y a-t-il un moyen quelconque de connaître la composition du fichier à l'avance (nom du fichier, autre...) ?

CLAMaxime -- Kudos are a great way to say thank you
0 Compliments
Message 2 sur 12
4 097 Visites

Salut Maxime,

 

Tout d'abord je te remercie de t'être intéressé à mon sujet !

 

L'utilisateur connaît le nom du fichier qu'il importe mais ne sait pas quelle déf_typ (4 éléments ou 5 éléments) il importe.

En gros je suis confronté à un problème de compatibilité, les fichiers ayant une déf_type de 4 éléments sont des fichiers enregistrés avant la dernière amélioration de mon code. Cette dernière amélioration ajoute des infos supplémentaires au fichier binaire.

 

Ci-dessous le code plus complet de ma fonction avec la nouvelle déf_type (composée de 5 clusters):

Pb de données import binaire.PNG

 

Petitou

0 Compliments
Message 3 sur 12
4 088 Visites
J'imagine donc que tu dois pouvoir faire les tri des tes différents fichiers binaires en fonction de leur date de création ?

Si c'est le cas, il suffit de traiter deux cas :
1) Le fichier a été créé avant la modification du code > j'utilise le cluster de 4 éléments
2) Sinon j'utilise le cluster de 5 éléments

Une fonction qui pourrait t'aider : http://zone.ni.com/reference/en-XX/help/371361K-01/glang/file_directory_info/
CLAMaxime -- Kudos are a great way to say thank you
Message 4 sur 12
4 084 Visites

Je ne sais pas si ma suggestion est réaliste mais tu pourrais te faire une petite application qui converti tout tes fichiers utilisant des clusters de 4 éléments en clusters de 5 éléments (en utilisant une valeur par défaut pour l'info supplémentaire).

Ainsi l'utilisateur n'aurait pas à choisir entre 2 type d'élément. Tu aurais bien sur à trier tes fichiers au préalable mais une fois convertis plus de soucis.

 

Ben64

0 Compliments
Message 5 sur 12
4 062 Visites

j'ai eu un pb similaire lors d'une évolution d'une Def de type

donc j'ouvre en essayant la nouvelle def de type et si il y a une erreur j'ouvre avec la l'ancienne

 dans mon cas cela fonctionne bien

Message 6 sur 12
4 052 Visites

Bonjour ben,

 

J'avais pensé à cette solution de conversion du fichier ouvert, mais je ne vois pas du tout comment ajouter un cluster supplémentaire à ma déf_type actuelle de 4 éléments. Parceque si j'ajoute seulement un cluster en plus, je ne pourrai pas ouvrir mes anciens fichiers car eux, sont composés de 4 clusters..

 

Petitou

0 Compliments
Message 7 sur 12
4 048 Visites

Maxime,

 

Ta solution (utilisation de la fonction "infos sur le fichier") fonctionne très bien et correspond au résultat attendu. Le seul "petit" défaut que je vois, c'est qu'elle demande au programmeur de connaître la date du prochain déploiement du code (car je fais une comparaison de la date de modif du fichier: si < date de déploiement => utilisation de la déf_type 4 clusters; si > => utilisation de la déf_type 5 clusters).

 

thib_fr,

 

Très bonne idée aussi, mais je pense que dans mon cas la condition d'erreur ne suffit pas car plusieurs éléments peuvent créer des erreurs.  Si j'avais eu seulement l'ouverture du fichier qui crée potentiellement une erreur, j'aurai utilisé ta solution.

 

En tout cas je vous remercie, mon code fonctionne comme je le souhaite maintenant.

 

Petitou

0 Compliments
Message 8 sur 12
4 042 Visites

ttt.png

Message 9 sur 12
4 041 Visites

Pour appuyer la réponse de thib_fr et palier ta problématique de "plusieurs erreurs peuvent survenir", tu peux tout à fait tester la valeur du code d'erreur et n'agir que dans des cas précis 😉 

 

Et juste une petite correction car autrement je ne suis pas sûr que cela fonctionne : ne pas cabler l'erreur sur la deuxième fonction de lecture. 

CLAMaxime -- Kudos are a great way to say thank you
Message 10 sur 12
4 026 Visites