Discussions au sujet des autres produits NI

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

chaine en tableau 2d

Résolu !
Accéder à la solution

Bonjour,

J'ai un problème pour convertir une chaine en tableau. La chaine se présente de la facon suivante :

 

-6.8995e-06,-0.000999928
-6.899e-06,-0.126
-6.8985e-06,-0.0634999

(il y a 100000 ligne)

J'utilise la fonction "Chaîne au format tableur en tableau " mais j'obtiens un tableau 2D avec les valeurs :

 

-6 0

-6 0

-6 0

 

Mais lorsque je remplace les points par une virgule et les virgules par un espace (ou autre ) cela fonctionne.

 

comment faire ?

Merci

0 Compliments
Message 1 sur 4
4 179 Visites
Solution
Accepté par seifel

Bonjour,

 

Dans chaine de format %.;%s => %. pour separateur decimal=.; %s pour notation scientifique

Dans chaine séparateur , : car ton séparateur est une virgule.

 

Sinon dans les options de LV tu décoche la case utilisez le séparateur decimal du systeme ou soit dans les options régionale de ton os tu remplace la virgule française comme séparateur décimal par un point.

 

Greg S.
CNRS
LV 7.1 8.2 8.6 2009 2011 2012 2013 2014
LPMC - CNRS
N'oubliez pas de complimenter cela fait toujours plaisir.
Message 2 sur 4
4 174 Visites

Si vous êtes en 'point' comme séparateur décimal (conseillé) ça fonctionne avec 'Spreadsheet String To Array'...

 

 

StringToNumber.jpg

 

Votre LabVIEW doit être configuré de base pour utiliser le séparateur décimal local qui doit vraissemblablement être avec une 'virgule' (french exception ;)) et la source de vos données doit être plus universelle ('point').

 

donc si vous ne souhaitez pas passer votre OS en mode universel vous allez devoir identifier quel est votre séparateur local pour convertir si besoin votre chaine. La méthode la plus basique:

 

 Vous prenez n'importe quelle constante flottante (par exemple 1.23), vous la convertissez en chaine de caractères (avec 'Number To fractionnal String') puis vous cherchez dans la chaine si le point ou la virgule est présent (avec 'Match Pattern').

 

Si la virgule est détectée, pas de modification de la chaine et appel direct de la fonction 'Spreadsheet String To Array'.

Si la virgule, n'est pas détectée, procédez comme vous l'avez vous-même proposé en remplaçant toutes les virgules par des points-virgule (par exemple) puis remplacez tous les points par des virgules.

 

Message 3 sur 4
4 171 Visites

Merci pour vos solutions, il y a effectivement une incompatibilité pour le separateur décimal. Mon problème venais de la valeur à indiquer dans chaine de format.

 

Merci à tous

0 Compliments
Message 4 sur 4
4 165 Visites