Discussions au sujet des autres produits NI

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

Point / Virgule

Bonjour,

voici mon problème :
j'ai programmé une application (avec Labview 8.2.1) qui écrit des données en ASCII dans des fichiers textes. Ces données sont destinées à être relues par une autre application (développée également sous Labview 8.2.1 ou sous matlab ou autre...) et pas forcement sur le même ordinateur.
J'ai désactivé l'option "Utiliser le séparateur décimal local" et en effet, quand je lance l'application d'écriture sous Labview, les données s'écrivent toujours avec un point quelque soit le séparateur local.
Cependant, quand je construis un executable, les données s'écrivent avec le séparateur décimal local (même en mettant la chaîne de format %.3f). Du coup, cela m'est déjà arrivé d'écrire les données avec un PC configuré avec la virgule comme séparateur et de ne pas pouvoir les relire correctement avec un autre PC (qui lui avait le point).

L'application étant destinée à être utilisée par un grand nombre de personnes avec des configurations diverses et variées, y aurait-il un moyen, pour l'executable, de forcer l'écriture avec le point comme séparateur décimal, quelque soit celui du système?

En espérant que mon message soit à peu près compréhensible,
d'avance merci,

Vincent

0 Compliments
Message 1 sur 7
7 322 Visites
bonjour,

pour definir le separateur decimal dans une chaine de type, il faut utiliser la consigne suivante :
- %; pour la valeur par defaut
- %.; pour le point
- %,; pour la virgule
il est possible egalement de mettre le separateur que l'on veut

le type %.3f ne fait que designer le nombre de chiffres apres le separateur decimal
il faut donc utiliser la chaine "%.;%.3f"

voir egalement sujet joint :
http://digital.ni.com/public.nsf/websearch/4b259a9cf98ad4628625697e00548ea0

cordialement
Message 2 sur 7
7 311 Visites
Merci beaucoup.

Et sinon, pour avoir la confirmation, avec le vi "Ecrire un clé (double)", si je cable "utiliser le séparateur décimal du sytème" à faux, je n'aurais pas de problème de point et de virgule quelque soit le système ?

Merci encore

Vincent
0 Compliments
Message 3 sur 7
7 307 Visites
le mieux, c'est toujours de prendre un peu de temps et de tester par soi meme...
Message 4 sur 7
7 287 Visites
Sinon, pour ne jamais utiliser le séparateur locoal il faut ajouter une ligne dans le fichier ini créé automatiquement quand tu fais un exe avec LabVIEW :

useLocaleDecimalPt=False.

Voir ici http://forums.ni.com/ni/board/message?board.id=170&message.id=268057

Comme ça, ton appli utilisera forcément le séparateur "."

A+
Raoul Chodziesner-Bonne
Ingénieur Instrumentation
CRIL TECHNOLOGY - Groupe ALYOTECH

"Celui qui pose une question peut paraitre idiot sur le moment, celui qui n'en pose pas le reste toute sa vie!"
Message 5 sur 7
7 267 Visites
Merci !

Vincent
0 Compliments
Message 6 sur 7
7 260 Visites

Pour éviter ce problème, une solution qui marche à tous les coups est de ne pas utiliser de séparateur décimal !

Il suffit d'enregistrer les valeurs sous la forme de nombres avec exposant :

exemple 3.14 = 314E-2

Chilly Charly    (aka CC)

         E-List Master - Kudos glutton - Press the yellow button on the left...
        
Message 7 sur 7
7 232 Visites